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;i<options.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 text=""/>

 <select id="sex">     
    <option value="male">男</option>     
    <option value="female">女</option>   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值