اعتبار سنجی کد ملی در Go

اعتبار سنجی کد ملی در Go

جالب است که بدانید کد ملی افراد دارای ساختار خاصی است و از روی این ساختار می‌توان اعتبار سنجی کد ملی را انجام داد. اگر شما هم در پروژه GoLang کد ملی کاربر را دریافت می‌کنید، می‌توانید با استفاده از کد زیر، آن را اعتبار سنجی کنید. کدملی را بصورت یک رشته عددی (و نه عدد) به تابع پاس بدهید و خروجی صحیح (true) یا غلط (false) را دریافت کنید.

import (
	"log"
	"regexp"
	"strconv"
	"strings"
)

func checkNationalCode(code string) bool {

	// snippets.ir

	reg, err := regexp.Compile("/[^0-9]/")

	if err != nil {
		log.Fatal(err)
	}

	code = reg.ReplaceAllString(code, "")

	if len(code) != 10 {
		return false
	}

	codes := strings.Split(code, "")

	last, err := strconv.Atoi(codes[9])

	i := 10
	sum := 0

	for in, el := range codes {
		temp, err := strconv.Atoi(el)

		if err != nil {
			log.Fatal(err)
		}

		if in == 9 {
			break
		}

		sum += temp * i
		i -= 1
	}

	mod := sum % 11

	if mod >= 2 {
		mod = 11 - mod
	}

	return mod == last
}

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.