- 按键认证大神
- 728264
- 3502
- 18
- 1899 朵
- 27454 个
- 1718 个
- 82980
- 2011-08-04
|
1#
t
T
发表于 2022-10-18 02:41
|
|只看楼主
身份证号码最后一位校验码计算方法:1、将身份证号码前17位数分别乘以不同的系数,从第1位到第17位的系数分别为7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2。 2、把身份证号码每位的乘积相加计算出总和。 3、用加出来的总和除以11,得到余数。 4、得到的余数可能为0、1、2、3、4、5、6、7、8、9、10,它们分别对应校验码1、0、X 、9、8、7、6、5、4、3、2。我们可以根据以上信息来编写函数用以提取身份证号码中的信息。注:本文中提取身份证信息的原理来源于网络,仅供交流学习及校验身份证号码信息,不提供自动生成身份证号码的代码。函数名称: 获取身份证号码校验码 参数定义:身份证号码前17位 字符串型:身份证号码中的前17位 返回值: 字符串型:身份证号码中第18位校验码 调用例子: TracePrint "身份证号码校验码:" & 获取身份证号码校验码("11000019491001321")'身份证号码校验码:9函数名称: 判断身份证号码是否正确 参数定义:身份证号码 字符串型:18位的身份证号码 返回值: 字符串型:身份证号码正确则返回 1,否则返回0 调用例子: TracePrint "身份证号码是否正确:" & 判断身份证号码是否正确("110000194910013219")'身份证号码是否正确:1函数名称: 获取身份证号码出生年月日 参数定义:身份证号码 字符串型:18位的身份证号码 返回值: 字符串型:身份证中的出生年月日,以"|"作为分割符,月和日中第1位若为"0",则舍弃,如"01"返回"1" 调用例子: TracePrint "身份证号码出生年月日:" & 获取身份证号码出生年月日("110000194910013219")'身份证号码出生年月日:1949|10|1函数名称: 获取身份证号码性别 参数定义:身份证号码 字符串型:18位的身份证号码 返回值: 字符串型:"男"或"女" 调用例子: TracePrint "身份证号码性别:" & 获取身份证号码性别("110000194910013219")'身份证号码性别:男函数名称: 获取身份证号码省份 参数定义:身份证号码 字符串型:18位的身份证号码 返回值: 字符串型:所在省份,比如"北京市"、"河北省"、"内蒙古自治区"、"台湾省"、"香港特别行政区"等 调用例子: TracePrint "身份证号码省份:" & 获取身份证号码省份("110000194910013219")'身份证号码省份:北京市注:若要获取具体的城市及区县,请自行搜索行政区代码进行编写。源码:- TracePrint "身份证号码校验码:" & 获取身份证号码校验码("11000019491001321")
- TracePrint "身份证号码是否正确:" & 判断身份证号码是否正确("110000194910013219")
- TracePrint "身份证号码出生年月日:" & 获取身份证号码出生年月日("110000194910013219")
- TracePrint "身份证号码性别:" & 获取身份证号码性别("110000194910013219")
- TracePrint "身份证号码省份:" & 获取身份证号码省份("110000194910013219")
- Function 获取身份证号码校验码(身份证号码前17位)
- 身份证号码前17位 = Left(身份证号码前17位, 17)
- If IsNumeric(身份证号码前17位) = false Then
- 获取身份证号码校验码 = ""
- Exit Function
- End If
- Dim i, 系数, 余数, 总和, 校验码
- 系数 = Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)
- 校验码 = Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2")
- 总和 = 0
- For i = 1 To 17
- 总和 = 总和 + 系数(i - 1) * CLng(Mid(身份证号码前17位, i, 1))
- Next
- 获取身份证号码校验码 = 校验码(总和 Mod 11)
- End Function
- Function 判断身份证号码是否正确(身份证号码)
- If Len(身份证号码) <> 18 Then
- 判断身份证号码是否正确 = 0
- Exit Function
- End If
- Dim 身份证号码前17位, 身份证号码末位
- 身份证号码前17位 = Left(身份证号码, 17)
- If IsNumeric(身份证号码前17位) = false Then
- 判断身份证号码是否正确 = 0
- Exit Function
- End If
- 身份证号码末位 = Right(身份证号码, 1)
- If IsNumeric(身份证号码末位) = false And 身份证号码末位 <> "X" Then
- 判断身份证号码是否正确 = 0
- Exit Function
- End If
- If 获取身份证号码校验码(身份证号码前17位) = 身份证号码末位 Then
- 判断身份证号码是否正确 = 1
- Else
- 判断身份证号码是否正确 = 0
- End If
- End Function
- Function 获取身份证号码出生年月日(身份证号码)
- Dim 年, 月, 日
- 年 = Mid(身份证号码, 7, 4)
- 月 = Mid(身份证号码, 11, 2)
- If Left(月, 1) = "0" Then
- 月 = Right(月, 1)
- End If
- 日 = Mid(身份证号码, 13, 2)
- If Left(日, 1) = "0" Then
- 日 = Right(日, 1)
- End If
- 获取身份证号码出生年月日 = 年 & "|" & 月 & "|" & 日
- End Function
- Function 获取身份证号码性别(身份证号码)
- Dim 身份证号码第17位
- 身份证号码第17位 = Mid(身份证号码, 17, 1)
- If (CLng(身份证号码第17位) Mod 2) = 0 Then
- 获取身份证号码性别 = "女"
- Else
- 获取身份证号码性别 = "男"
- End If
- End Function
- Function 获取身份证号码省份(身份证号码)
- Dim 身份证号码前两位
- 身份证号码前两位 = Mid(身份证号码, 1, 2)
- Select Case 身份证号码前两位
- Case "11"
- 获取身份证号码省份 = "北京市"
- Case "12"
- 获取身份证号码省份 = "天津市"
- Case "13"
- 获取身份证号码省份 = "河北省"
- Case "14"
- 获取身份证号码省份 = "山西省"
- Case "15"
- 获取身份证号码省份 = "内蒙古自治区"
- Case "21"
- 获取身份证号码省份 = "辽宁省"
- Case "22"
- 获取身份证号码省份 = "吉林省"
- Case "23"
- 获取身份证号码省份 = "黑龙江省"
- Case "31"
- 获取身份证号码省份 = "上海市"
- Case "32"
- 获取身份证号码省份 = "江苏省"
- Case "33"
- 获取身份证号码省份 = "浙江省"
- Case "34"
- 获取身份证号码省份 = "安徽省"
- Case "35"
- 获取身份证号码省份 = "福建省"
- Case "36"
- 获取身份证号码省份 = "江西省"
- Case "37"
- 获取身份证号码省份 = "山东省"
- Case "41"
- 获取身份证号码省份 = "河南省"
- Case "42"
- 获取身份证号码省份 = "湖北省"
- Case "43"
- 获取身份证号码省份 = "湖南省"
- Case "44"
- 获取身份证号码省份 = "广东省"
- Case "45"
- 获取身份证号码省份 = "广西壮族自治区"
- Case "46"
- 获取身份证号码省份 = "海南省"
- Case "50"
- 获取身份证号码省份 = "重庆省"
- Case "51"
- 获取身份证号码省份 = "四川省"
- Case "52"
- 获取身份证号码省份 = "贵州省"
- Case "53"
- 获取身份证号码省份 = "云南省"
- Case "54"
- 获取身份证号码省份 = "西藏自治区"
- Case "61"
- 获取身份证号码省份 = "陕西省"
- Case "62"
- 获取身份证号码省份 = "甘肃省"
- Case "63"
- 获取身份证号码省份 = "青海省"
- Case "64"
- 获取身份证号码省份 = "宁夏回族自治区"
- Case "65"
- 获取身份证号码省份 = "新疆维吾尔自治区"
- Case "71"
- 获取身份证号码省份 = "台湾省"
- Case "81"
- 获取身份证号码省份 = "香港特别行政区"
- Case "82"
- 获取身份证号码省份 = "澳门特别行政区"
- Case Else
- 获取身份证号码省份 = ""
- End Select
- End Function
复制代码
|