js 方法-判断身份证号

js 方法-判断身份证号是否正确

var is_IdCard = function(idCard,reg){
        var reg = reg ? reg : regConfig.idCard ;
        //验证格式是否正确
        if(!reg.test(idCard)){
            console.log('身份证格式不正确');
            return false;
        }

        //验证1-2位地址城市是否合法
        if(!vcity[idCard.substr(0,2)]){
            console.log('地址编码错误');
            return false;
        }
        //验证7-14出生日期是否合法
        var birthday = idCard.substr(6,4)+"/"+parseInt(idCard.substr(10,2))+"/"+parseInt(idCard.substr(12,2));
        var birDate = new Date(birthday);
        if(birthday != (birDate.getFullYear()+"/"+(parseInt(birDate.getMonth())+1)+"/"+birDate.getDate())){
            return false;
        }
        //验证最后校验位
        var sum = 0;
        for(var i=17 ; i>=0 ; i--){
            sum += (Math.pow(2,i)%11)*parseInt(idCard.replace(/x$/i,'a').charAt(17-i),11);
        }
        if(sum%11 != 1){
            console.log('你输入的身份证号非法');
            return false;
        }
        //解析身份证后可以得到 出生地,出生日期,性别
        var _birCity = vcity[idCard.substr(0,2)];
        var _birDate = birthday;
        var _sex = idCard.substr(16,1)%2 ?'男':'女';


        return true;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值