jquery验证二代身份证

倾然丶 夕夏残阳落幕 提交于 2019-11-28 15:49:54
$('#idcardno').blur(function () {
        var idcard = $(this).val();
        var reg = /^\d{17}\d|x$/;
        var is_ok = reg.test(idcard);

        var arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];//加权因子
        var arrValid = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2];//校验码
        if (is_ok) {
            var sum = 0, idx;
            for (var i = 0; i < idcard.length - 1; i++) {
                // 对前17位数字与权值乘积求和
                sum += parseInt(idcard.substr(i, 1), 10) * arrExp[i];
            }
            // 计算模(固定算法)
            idx = sum % 11;
            // 检验第18为是否与校验码相等
            if (arrValid[idx] == idcard.substr(17, 1)) {
                $('#idcardinfo').html('ok').css({'color': 'green'})
            } else {
                $('#idcardinfo').html('身份证号码错误').css({'color': 'red'})
            }

        } else {
            $('#idcardinfo').html('身份证号码错误').css({'color': 'red'})
        }

    });
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!