JS验证身份证的合法性

页面导航:首页 > 网络编程 > JavaScript > JS验证身份证的合法性

JS验证身份证的合法性

来源: 作者: 时间:2016-01-23 10:23 【

验证身份证的合法性function IdentityCodeValid(code) { var city={11:北京,12:天津,13:河北,14:山西,15:内蒙古,21:辽宁,22:吉林,23:黑龙江 ,31:上海,32:江苏,33:浙江,34:安徽
//验证身份证的合法性
function IdentityCodeValid(code) { 
            var city={11:北京,12:天津,13:河北,14:山西,15:内蒙古,21:辽宁,22:吉林,23:黑龙江 ,31:上海,32:江苏,33:浙江,34:安徽,35:福建,36:江西,37:山东,41:河南,42:湖北 ,43:湖南,44:广东,45:广西,46:海南,50:重庆,51:四川,52:贵州,53:云南,54:西藏 ,61:陕西,62:甘肃,63:青海,64:宁夏,65:新疆,71:台湾,81:香港,82:澳门,91:国外 };
            var tip = ;
            var pass= true;
            
            if(!code || !/^d{6}(18|19|20)?d{2}(0[1-9]|1[12])(0[1-9]|[12]d|3[01])d{3}(d|X)$/i.test(code)){
                tip = 身份证号格式错误;
                pass = false;
            }
           else if(!city[code.substr(0,2)]){
                tip = 地址编码错误;
                pass = false;
            }
            else{
                //18位身份证需要验证最后一位校验位
                if(code.length == 18){
                    code = code.split('');
                    //∑(ai×Wi)(mod 11)
                    //加权因子
                    var factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];
                    //校验位
                    var parity = [ 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 ];
                    var sum = 0;
                    var ai = 0;
                    var wi = 0;
                    for (var i = 0; i < 17; i++)
                    {
                        ai = code[i];
                        wi = factor[i];
                        sum += ai * wi;
                    }
                    var last = parity[sum % 11];
                    if(parity[sum % 11] != code[17]){
                        tip = 校验位错误;
                        pass =false;
                    }
                }
            }
            return pass;
        }

 

方法 返回false 身份证不合法

 

Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<