JS中身份证号(18位/15位)正则表达式详解

xxxxxx yyyy MM dd xxx x     十八位

xxxxxx    yy MM dd   xx x     十五位


地区:[1-9]\d{5}
年的前两位:(18|19|([23]\d))            1800-3999
年的后两位:\d{2}
月份:((0[1-9])|(10|11|12)) 
天数:(([0-2][1-9])|10|20|30|31)          闰年不能禁止29+

三位顺序码:\d{3}

两位顺序码:\d{2}


校验码:[0-9Xx](注明:15位的校验码没有Xx)


十八位:^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$

十五位:^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$

总结如下

pattern: /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/


版权声明:本文为qq_37139060原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。