前端-正则表达式-收集

身份证:

xxxxxx yyyy MM dd 375 0     十八位

xxxxxx    yy MM dd   75 0     十五位

地区: [1-9]d{5}

年的前两位: (18|19|([23]d))1800-2399

年的后两位: d{2}

月份: ((0[1-9])|(10|11|12)) 

天数: (([0-2][1-9])|10|20|30|31)闰年不能禁止29+

三位顺序码: d{3}

两位顺序码: d{2}

校验码: [0-9Xx]

正则表达式

十八位: ^[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}$

总:

( ^[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}$)

简单的JS验证示例

functionisCardNo(card)

{

        // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X

    var    reg = /(^d{15}$)|(^d{18}$)|(^d{17}(d|X|x)$)/;

        if(reg.test(card) === false)

        {

                alert("身份证输入不合法");

                return    false;

        }

}



原文地址:https://www.cnblogs.com/gqzdev/p/12572600.html