18位身份证正则

18位身份证号码各位的含义:

1-2: 省、自治区、直辖市代码;
3-4: 地级市、盟、自治州代码;
5-6: 位县、县级市、区代码;
7-14: 出生年月日,比如 19670401 代表 1967年4月1日
15-17: 为顺序号,其中17位(倒数第二位)男为单数,女为双数;
18: 为校验码,0-9和X。作为尾号的校验码,是由把前十七位数字带入统一的公式计算出来的,计算的结果是0-10,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位。X是罗马数字的10,用X来代替10。

头6位   [1-9]\d{5}
出生年份 (19|20)\d{2}
出生月日 
    31天  (0[13578]|1[02])(0[1-9]|[12][\d]|3[01])
    30天  (0[469]|11)(0[1-9]|[12][\d]|30)
    2月   02(0[1-9]|[12][\d])
后4位  \d{3}[\dxX]

/^[1-9]\d{5}(19|20)\d{2}((0[13578]|1[02])(0[1-9]|[12][\d]|3[01])|(0[469]|11)(0[1-9]|[12][\d]|30)|02(0[1-9]|[12][\d]))\d{3}[\dxX]$/

添加新评论