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("身份证号码不正确")
    }
上一篇 下一篇

猜你喜欢

热点阅读