Js验证15位 18位身份证号码 并判断男女是否相符
身份证验证在WEB开发中经常遇到,因为现在是新老身份证过渡期,所以判断身份证不光是要判断18位新身份证号码,还要照顾到15位的老身份证号,有些麻烦,不过掌握了Js算法,一切就简单了,本Js函数不但实现了15位、18位身份证号码的判断,而且还可判断男女是否和身份证相符,相当实用了。
<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.getElementByIdx("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 type="text" onblur="validId(this)" maxlength="18" size="18"> <select id="sex"> <option value="male">男</option> <option value="female">女</option> </select>
这是核心代码,没有提交按钮,你自己弄一个试下。
一、推荐使用迅雷或快车等多线程下载软件下载本站资源。
二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。
三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!
四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.
五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。
六、如需转载本站资源,请注明转载来自并附带链接
七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com
大家评论
站长推荐
点击排行
- 1CSS控制文字在Div最底部显示
- 2Thinkphp5如何配置IP+端口访问项目模块
- 3elementUI el-dialog弹框居中
- 4教你如何搭建及优化站点
- 5国内互联网视频行业运营分析
- 6service mysql start出错,mysql不能启动,解决mysql: unrecognized service错误
- 7CSS实现悬浮顶部的Div工具栏
- 8记一次Thinkphp5.1框架mysql数据库崩溃(SQLSTATE [08004] Too many connections)
- 9连接SQL Server数据库提示:Login failed for user 'sa'错误的解决方案
- 10Thinkphp3.2在centos7上设置计划任务的方法