关于二代身份证的正则匹配
二代身份证有其固定的格式,因此在遇到有二代身份证号输入的项目时,需检验二代身份证号码是否符合设计标准。
二代身份证号码的格式分析:
| 位数 | 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/
最后,刚开始学,如果有错恳请指正,谢谢!
浙公网安备 33010602011771号