关于二代身份证的正则匹配

  二代身份证有其固定的格式,因此在遇到有二代身份证号输入的项目时,需检验二代身份证号码是否符合设计标准。

  二代身份证号码的格式分析:

位数 6位省/区/县 4位年份 4位月日 2位当地出生办理顺序 1位性别 1位校验位
描述 首位不能为0

年份前两位从18开始,这里我设置结束为20;

年份后两位从00-99;

月从01-12;

日从01-31;

 

1:男性

2:女性

0-9,X/x
正则 [1-9]\d{5}

年份前两位:(18|19|20);

年份后两位:\d{2};

月两位:((0[1-9]))|10|11|12;

日两位:([0-2][1-9]|10|20|30|31)

\d{2} (1|2) ([0-9]|X|x)
正则解释 第一位不能为0,第2至6位为任意的0-9字符

前两位控制位18、19、20;

后两位为任意两个0-9的字符

月份为1-9时,需写成01-09的形式;

日为1-9时,需写成01-09

  该位为1或2  

最终正则表达式为:reg = /[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|30|31)\d{2}(1|2)([0-9]|X|x)$/

附上检验正则表达式的链接:http://tool.chinaz.com/regex/

最后,刚开始学,如果有错恳请指正,谢谢!

posted @ 2021-06-04 15:26  Fron-temper  阅读(358)  评论(0)    收藏  举报