JS校验身份证信息


/* 校验身份证号  */
function checkIdCard(id) {
    var flag = true;
    //转换大小写
    id = id.toUpperCase();
    var arrVerifyCode = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2];
    var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
    var Checker = [1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1];
    if(id.length != 15 && id.length != 18) {
        layer.open({
            title: '信息',
            content: '身份证号不符合规则'
        });
        flag = false;
    }
    var Ai = id.length == 18 ? id.substring(0, 17) : id.slice(0, 6) + "19" + id.slice(6, 16);
    if(!/^\d+$/.test(Ai)) {
        layer.open({
            title: '信息',
            content: '身份证号不符合规则'
        });
        flag = false;
    }
    var yyyy = Ai.slice(6, 10),
        mm = Ai.slice(10, 12) - 1,
        dd = Ai.slice(12, 14);
    var d = new Date(yyyy, mm, dd),
        now = new Date();
    var year = d.getFullYear(),
        mon = d.getMonth(),
        day = d.getDate();
    if(year != yyyy || mon != mm || day != dd || d > now || year < 1800) {
        layer.open({
            title: '信息',
            content: '身份证号不符合规则'
        });
        flag = false;
    }
    for(var i = 0, ret = 0; i < 17; i++) {
        ret += Ai.charAt(i) * Wi[i]
    }
    Ai += arrVerifyCode[ret %= 11];
    if(id.length == 18 && id != Ai) {
        layer.open({
            title: '信息',
            content: '身份证号不符合规则'
        });
        flag = false;
    }
    return flag;
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM