• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[昨夜星辰] 【源码】提取身份证号码中的信息 [复制链接]

1#


身份证号码最后一位校验码计算方法:
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")

'身份证号码省份:北京市

注:若要获取具体的城市及区县,请自行搜索行政区代码进行编写。

源码:
  1. TracePrint "身份证号码校验码:" & 获取身份证号码校验码("11000019491001321")
  2. TracePrint "身份证号码是否正确:" & 判断身份证号码是否正确("110000194910013219")
  3. TracePrint "身份证号码出生年月日:" & 获取身份证号码出生年月日("110000194910013219")
  4. TracePrint "身份证号码性别:" & 获取身份证号码性别("110000194910013219")
  5. TracePrint "身份证号码省份:" & 获取身份证号码省份("110000194910013219")
  6. Function 获取身份证号码校验码(身份证号码前17位)
  7. 身份证号码前17位 = Left(身份证号码前17位, 17)
  8. If IsNumeric(身份证号码前17位) = false Then
  9. 获取身份证号码校验码 = ""
  10. Exit Function
  11. End If
  12. Dim i, 系数, 余数, 总和, 校验码
  13. 系数 = Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)
  14. 校验码 = Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2")
  15. 总和 = 0
  16. For i = 1 To 17
  17. 总和 = 总和 + 系数(i - 1) * CLng(Mid(身份证号码前17位, i, 1))
  18. Next
  19. 获取身份证号码校验码 = 校验码(总和 Mod 11)
  20. End Function
  21. Function 判断身份证号码是否正确(身份证号码)
  22. If Len(身份证号码) <> 18 Then
  23. 判断身份证号码是否正确 = 0
  24. Exit Function
  25. End If
  26. Dim 身份证号码前17位, 身份证号码末位
  27. 身份证号码前17位 = Left(身份证号码, 17)
  28. If IsNumeric(身份证号码前17位) = false Then
  29. 判断身份证号码是否正确 = 0
  30. Exit Function
  31. End If
  32. 身份证号码末位 = Right(身份证号码, 1)
  33. If IsNumeric(身份证号码末位) = false And 身份证号码末位 <> "X" Then
  34. 判断身份证号码是否正确 = 0
  35. Exit Function
  36. End If
  37. If 获取身份证号码校验码(身份证号码前17位) = 身份证号码末位 Then
  38. 判断身份证号码是否正确 = 1
  39. Else
  40. 判断身份证号码是否正确 = 0
  41. End If
  42. End Function
  43. Function 获取身份证号码出生年月日(身份证号码)
  44. Dim 年, 月, 日
  45. 年 = Mid(身份证号码, 7, 4)
  46. 月 = Mid(身份证号码, 11, 2)
  47. If Left(月, 1) = "0" Then
  48. 月 = Right(月, 1)
  49. End If
  50. 日 = Mid(身份证号码, 13, 2)
  51. If Left(日, 1) = "0" Then
  52. 日 = Right(日, 1)
  53. End If
  54. 获取身份证号码出生年月日 = 年 & "|" & 月 & "|" & 日
  55. End Function
  56. Function 获取身份证号码性别(身份证号码)
  57. Dim 身份证号码第17位
  58. 身份证号码第17位 = Mid(身份证号码, 17, 1)
  59. If (CLng(身份证号码第17位) Mod 2) = 0 Then
  60. 获取身份证号码性别 = "女"
  61. Else
  62. 获取身份证号码性别 = "男"
  63. End If
  64. End Function
  65. Function 获取身份证号码省份(身份证号码)
  66. Dim 身份证号码前两位
  67. 身份证号码前两位 = Mid(身份证号码, 1, 2)
  68. Select Case 身份证号码前两位
  69. Case "11"
  70. 获取身份证号码省份 = "北京市"
  71. Case "12"
  72. 获取身份证号码省份 = "天津市"
  73. Case "13"
  74. 获取身份证号码省份 = "河北省"
  75. Case "14"
  76. 获取身份证号码省份 = "山西省"
  77. Case "15"
  78. 获取身份证号码省份 = "内蒙古自治区"
  79. Case "21"
  80. 获取身份证号码省份 = "辽宁省"
  81. Case "22"
  82. 获取身份证号码省份 = "吉林省"
  83. Case "23"
  84. 获取身份证号码省份 = "黑龙江省"
  85. Case "31"
  86. 获取身份证号码省份 = "上海市"
  87. Case "32"
  88. 获取身份证号码省份 = "江苏省"
  89. Case "33"
  90. 获取身份证号码省份 = "浙江省"
  91. Case "34"
  92. 获取身份证号码省份 = "安徽省"
  93. Case "35"
  94. 获取身份证号码省份 = "福建省"
  95. Case "36"
  96. 获取身份证号码省份 = "江西省"
  97. Case "37"
  98. 获取身份证号码省份 = "山东省"
  99. Case "41"
  100. 获取身份证号码省份 = "河南省"
  101. Case "42"
  102. 获取身份证号码省份 = "湖北省"
  103. Case "43"
  104. 获取身份证号码省份 = "湖南省"
  105. Case "44"
  106. 获取身份证号码省份 = "广东省"
  107. Case "45"
  108. 获取身份证号码省份 = "广西壮族自治区"
  109. Case "46"
  110. 获取身份证号码省份 = "海南省"
  111. Case "50"
  112. 获取身份证号码省份 = "重庆省"
  113. Case "51"
  114. 获取身份证号码省份 = "四川省"
  115. Case "52"
  116. 获取身份证号码省份 = "贵州省"
  117. Case "53"
  118. 获取身份证号码省份 = "云南省"
  119. Case "54"
  120. 获取身份证号码省份 = "西藏自治区"
  121. Case "61"
  122. 获取身份证号码省份 = "陕西省"
  123. Case "62"
  124. 获取身份证号码省份 = "甘肃省"
  125. Case "63"
  126. 获取身份证号码省份 = "青海省"
  127. Case "64"
  128. 获取身份证号码省份 = "宁夏回族自治区"
  129. Case "65"
  130. 获取身份证号码省份 = "新疆维吾尔自治区"
  131. Case "71"
  132. 获取身份证号码省份 = "台湾省"
  133. Case "81"
  134. 获取身份证号码省份 = "香港特别行政区"
  135. Case "82"
  136. 获取身份证号码省份 = "澳门特别行政区"
  137. Case Else
  138. 获取身份证号码省份 = ""
  139. End Select
  140. End Function
复制代码

最后编辑昨夜星辰 最后编辑于 2022-10-18 02:53:36
近期制作:
传奇私服各种反外挂插件版本挂机软件,可教可售
原神加速、连发辅助工具
天下3自动钓大鱼辅助工具

承接脚本定制,点击下方联系
QQ:250039815

交流群:101296478

2#

学习支持

3#

学习一下~~~~~~~~~~~~~~~~

4#

dsfsdfsdfhgjhf

5#

爱看手机话费空间阿萨德海口市发货单

6#

支持支持

7#

我来看看的

8#

好东西支持下

9#

好好学习

10#

4

11#

提取身份证号码中的信息

12#

感谢作者提供源码

13#

xxxxxxxxxxxxxx

14#

学习一下下

发新话题 回复该主题