功能简单介绍:针对一串身份证字符串(string)的处理:
1. 验证身份证的正确性
2. 提取出生年月日
3. 提取性别
4. 把15位的身份证号码转成18位
5. 验证省份代码正确性
直接上代码:
package citizen
import (
"strconv"
"errors"
"time"
)
var weight = [17]int{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}
var valid_value = [11]byte{'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'}
var valid_province = []string{
"11", // 北京市
"12", // 天津市
"13", // 河北省
"14", // 山西省
"15", // 内蒙古自治区
"21", // 辽宁省
"22", // 吉林省
"23", // 黑龙江省
"31", // 上海市
"32", // 江苏省
"33", // 浙江省
"34", // 安徽省
"35", // 福建省
"36", // 山西省
"37", // 山东省
"41", // 河南省
"42", // 湖北省
"43", // 湖南省
"44", // 广东省
"45", // 广西壮族自治区
"46", // 海南省
"50", // 重庆市
"51", // 四川省
"52", // 贵州省
"53", // 云南省
"54", // 西藏自治区
"61", // 陕西省
"62", // 甘肃省
"63", // 青海省
"64", // 宁夏回族自治区
"65", // 新疆维吾尔自治区
"71", // 台湾省
"81", // 香港特别行政区
"91