揭秘身份证正则15位验证:掌握核心技巧,轻松识别真伪!

身份证号码是每个中国公民的重要身份凭证,其中15位身份证号码是早期使用的格式。15位身份证号码由17位数字本体码和1位校验码组成,其结构如下:
地址码(6位):表示持证人常住户口所在县(市、旗、区)的行政区划代码。
出生日期码(8位):表示出生的年、月、日。
顺序码(3位):在同一地址码内,对同年、同月、同日出生的人进行排序,奇数分配给男性,偶数分配给女性。
校验码(1位):通过特定的加权求和公式计算得出。
以下是对15位身份证号码正则验证的详细解析:
1. 正则表达式
15位身份证号码的正则表达式如下:
^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$
这个表达式可以分为以下几个部分:
^[1-9]
:匹配身份证号码的第一位,确保它是一个非零数字。
\d{5}
:匹配接下来的5位数字,即地址码。
(18|19|20)
:匹配出生年份的最后两位,可以是18、19或20。
\d{2}
:匹配接下来的2位数字,即出生年份的前两位。
((0[1-9])|(10|11|12))
:匹配月份,可以是01至09或10至12。
(([0-2][1-9])|10|20|30|31)
:匹配日期,可以是01至29或10至31。
\d{3}$
:匹配最后的3位数字,即顺序码。
2. 校验码计算
15位身份证号码的校验码计算方法如下:
将地址码、出生日期码和顺序码分别乘以对应的加权因子。
将乘积相加。
用加出的和除以11,得到余数。
余数对应一个校验码,如下表所示:
余数
校验码
0
1
1
0
2
X
3
9
4
8
5
7
6
6
7
5
8
4
9
3
10
2
3. 实例分析
以下是一个15位身份证号码的实例分析:
身份证号码:130102198001011234
地址码:130102
出生日期码:19800101
顺序码:123
加权因子:[7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
计算校验码:
7*1 + 9*3 + 10*0 + 5*0 + 8*2 + 4*1 + 2*0 + 1*8 + 6*0 + 3*1 + 7*2 + 9*3 + 10*4 + 5*1 + 8*2 + 4*3 = 189
余数:
189 % 11 = 4
校验码:
4
对应
8
因此,该15位身份证号码的校验码为
8
。
4. 总结
通过以上分析,我们可以看到15位身份证号码的正则验证和校验码计算方法。掌握这些技巧,可以帮助我们轻松识别15位身份证号码的真伪。