go对二代身份证简单验证
2020-01-20 本文已影响0人
卖毛玉的小贩
var number string = "123456789123456789"
// 对身份证进行简单的校验
if len(number) != 18 {
return nil, errex.NewErrorItem("请输入正确格式的身份证号码")
}
// 系数
coefficient := []int{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}
checkDigitMap := []string{"1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"}
num := 0
for k, v := range number[:17] {
num += int((v - 48)) * coefficient[k]
}
num %= 11
if checkDigitMap[num] != string(number[17:18]) {
return nil, errex.NewErrorItem("身份证号码不正确")
}