1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| func checkIDCode(IDNum string) bool {
var sum int
idTableCh := strings.Split("FBEAHDNTPJKQMGOCUIVWXZ", "")
idTableValue := []int{15, 11, 14, 10, 17, 13, 22, 27, 23, 18, 19, 24, 21, 16, 35, 12, 28, 34, 29, 32, 30, 33}
for idx, c := range idTableCh {
if c == string(IDNum[0]) {
v := idTableValue[idx]
s := (v%10)*9 + (v / 10)
sum += s
break
}
}
for idx, n := range IDNum[1:9] {
i, _ := strconv.Atoi(string(n))
sum += i * (8 - idx)
}
i, _ := strconv.Atoi(string(IDNum[9]))
sum += i
return (sum%10 == 0)
}
func checkCompanyCode(num string) bool {
cc := []int{1, 2, 1, 2, 1, 2, 4, 1}
var sum int
for idx, e := range num {
s := int((e - 48)) * cc[idx]
t := s/10 + s%10
sum += t
}
return (sum)%10 == 0 || (string(num[6]) == "7" && (sum+1)%10 == 0)
}
|