Javascript代码:校验身份证号程序

louxiao23

louxiao23

2016-02-20 01:03

今天图老师小编要向大家分享个Javascript代码:校验身份证号程序教程,过程简单易学,相信聪明的你一定能轻松get!

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

1、15位身份证号码组成:ddddddyymmddxxs共15位,其中:dddddd为6位的地方代码,根据这6位可以获得该身份证号所在地。yy为2位的年份代码,是身份证持有人的出身年份。mm为2位的月份代码,是身份证持有人的出身月份。dd为2位的日期代码,是身份证持有人的出身日。这6位在一起组成了身份证持有人的出生日期。xx为2位的顺序码,这个是随机数。s为1位的性别代码,奇数代表男性,偶数代表女性。2、18位身份证号码组成:ddddddyyyymmddxxsp共18位,其中:其他部分都和15位的相同。年份代码由原来的2位升级到4位。最后一位为校验位。校验规则是:
(1)十七位数字本体码加权求和公式
S = Sum(Ai * Wi), i = 0, ... , 16 ,先对前17位数字的权求和
Ai:表示第i位置上的身份证号码数字值
Wi:表示第i位置上的加权因子
Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
(2)计算模
Y = mod(S, 11)
(3)通过模得到对应的校验码
Y: 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 X 9 8 7 6 5 4 3 2

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

也就是说,如果得到余数为1则最后的校验位p应该为对应的0.如果校验位不是,则该身份证号码不正确。以下为js版本的校验实例。


Js代码
script language="javascript"   
     !--   
    var powers=new Array("7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2");   
    var parityBit=new Array("1","0","X","9","8","7","6","5","4","3","2");   
    var sex="male";   
    //校验身份证号码的主调用   
  
    function validId(obj){   
        var _id=obj.value;   
        if(_id=="")return;   
        var _valid=false;   
        if(_id.length==15){   
             _valid=validId15(_id);   
         }else if(_id.length==18){   
             _valid=validId18(_id);   
         }   
        if(!_valid){   
             alert("身份证号码有误,请检查!");   
             obj.focus();   
            return;   
         }   
        //设置性别   
  
        var sexSel=document.getElementById("sex");   
        var options=sexSel.options;   
        for(var i=0;ioptions.length;i++){   
            if(options[i].value==sex){   
                 options[i].selected=true;   
                break;   
             }   
         }   
     }       
    //校验18位的身份证号码   
  
    function validId18(_id){   
         _id=_id+"";   
        var _num=_id.substr(0,17);   
        var _parityBit=_id.substr(17);   
        var _power=0;   
        for(var i=0;i 17;i++){   
            //校验每一位的合法性   
  
            if(_num.charAt(i)'0'||_num.charAt(i)'9'){   
                return false;   
                break;   
             }else{   
                //加权   
  
                 _power+=parseInt(_num.charAt(i))*parseInt(powers[i]);   
                //设置性别   
  
                if(i==16&&parseInt(_num.charAt(i))%2==0){   
                     sex="female";   
                 }else{   
                     sex="male";   
                 }   
             }   
         }   
        //取模   
  
        var mod=parseInt(_power)%11;   
        if(parityBit[mod]==_parityBit){   
            return true;   
         }   
        return false;   
     }   
    //校验15位的身份证号码   
  
    function validId15(_id){   
         _id=_id+"";   
        for(var i=0;i_id.length;i++){   
            //校验每一位的合法性   
  
            if(_id.charAt(i)'0'||_id.charAt(i)'9'){   
                return false;   
                break;   
             }   
         }   
        var year=_id.substr(6,2);   
        var month=_id.substr(8,2);   
        var day=_id.substr(10,2);   
        var sexBit=_id.substr(14);   
        //校验年份位   
  
        if(year'01'||year '90')return false;   
        //校验月份   
  
        if(month'01'||month '12')return false;   
        //校验日   
  
        if(day'01'||day '31')return false;   
        //设置性别   
  
        if(sexBit%2==0){   
             sex="female";   
         }else{   
             sex="male";   
         }   
        return true;   
     }   
    //--   
  
/script   
input type="text" onblur="validId(this)" maxlength=18 size=18   
select id="sex"   
     option value="male"男/option   
     option value="female"女/option

展开更多 50%)
分享

猜你喜欢

Javascript代码:校验身份证号程序

Web开发
Javascript代码:校验身份证号程序

验证身份证号是否正确的代码

ASP
验证身份证号是否正确的代码

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

excel输入数字或身份证号

电脑入门
excel输入数字或身份证号

excel输入身份证号的方法

电脑入门
excel输入身份证号的方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

网卡的身份证号—MAC地址(上)

电脑网络
网卡的身份证号—MAC地址(上)

excel输入身份证号出现乱码怎么办

excel 软件教程 办公软件
excel输入身份证号出现乱码怎么办

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

PowerPoint2007备注页中添加图片设置

PowerPoint2007备注页中添加图片设置

30个气泡悬浮框(Tooltip)的jQuery插件

30个气泡悬浮框(Tooltip)的jQuery插件
下拉加载更多内容 ↓