idcard.js
来自「几个运用了DWR框架编写的AJAX代码,」· JavaScript 代码 · 共 194 行
JS
194 行
var yyyy;var mm;var dd;var birthday;var sex;var IdCardErrorMsg='';function getYear(){ return yyyy;}function getMonth(){ return mm;}function getDate(){ return dd;}function getBirthday(){ return birthday;}function getSex(){ return sex;}function getAge(){ var mm=getMonth(); if (mm<10) mm=mm.substring(1,2); // 此处不能信任用户电脑的时间,须从服务器上获取. //var date1=new Date();//取得当前日期 var curFullYear = CurYear; var curMonth = CurMonth; return Math.floor((parseInt(curFullYear)*12+parseInt(curMonth)-parseInt(getYear())*12-parseInt(mm))/12);}//判断是否大龄,男50,女40function isBigAge(){ if (parseInt(getAge())>=40 && parseInt(getSex())==2) return "1"; if (parseInt(getAge())>=50 && parseInt(getSex())==1) return "1"; return "0";}//校验身份证号码function CheckIdCardValue(idCard){ var id=idCard; var id_length=id.length; if (id_length==0){ IdCardErrorMsg = "请输入身份证号码!"; return false; } if (id_length!=15 && id_length!=18){ IdCardErrorMsg ="身份证号长度应为15位或18位!"; return false; } if (id_length==15){ yyyy="19"+id.substring(6,8); mm=id.substring(8,10); dd=id.substring(10,12); if (mm>12 || mm<=0){ IdCardErrorMsg =("输入身份证号,月份非法!"); return false; } if (dd>31 || dd<=0){ IdCardErrorMsg =("输入身份证号,日期非法!"); return false; } birthday=yyyy+ "-" +mm+ "-" +dd; if ("13579".indexOf(id.substring(14,15))!=-1){ sex="1"; }else{ sex="2"; } }else if (id_length==18){ if (id.indexOf("X") > 0 && id.indexOf("X")!=17 || id.indexOf("x")>0 && id.indexOf("x")!=17){ IdCardErrorMsg = ("身份证中\"X\"输入位置不正确!"); return false; } yyyy=id.substring(6,10); if (yyyy>2200 || yyyy<1900){ IdCardErrorMsg =("输入身份证号,年度非法!"); return false; } mm=id.substring(10,12); if (mm>12 || mm<=0){ IdCardErrorMsg = ("输入身份证号,月份非法!"); return false; } dd=id.substring(12,14); if (dd>31 || dd<=0){ IdCardErrorMsg =("输入身份证号,日期非法!"); return false; } if (id.charAt(17)=="x" || id.charAt(17)=="X") { if ("x"!=GetVerifyBit(id) && "X"!=GetVerifyBit(id)){ IdCardErrorMsg = ("身份证校验错误,请检查最后一位!"); return false; } }else{ if (id.charAt(17)!=GetVerifyBit(id)){ IdCardErrorMsg =("身份证校验错误,请检查最后一位!"); return false; } } birthday=id.substring(6,10) + "-" + id.substring(10,12) + "-" + id.substring(12,14); if ("13579".indexOf(id.substring(16,17)) > -1){ sex="1"; }else{ sex="2"; } } return true;}//15位转18位中,计算校验位即最后一位function GetVerifyBit(id){ var result; var nNum=eval(id.charAt(0)*7+id.charAt(1)*9+id.charAt(2)*10+id.charAt(3)*5+id.charAt(4)*8+id.charAt(5)*4+id.charAt(6)*2+id.charAt(7)*1+id.charAt(8)*6+id.charAt(9)*3+id.charAt(10)*7+id.charAt(11)*9+id.charAt(12)*10+id.charAt(13)*5+id.charAt(14)*8+id.charAt(15)*4+id.charAt(16)*2); nNum=nNum%11; switch (nNum) { case 0 : result="1"; break; case 1 : result="0"; break; case 2 : result="X"; break; case 3 : result="9"; break; case 4 : result="8"; break; case 5 : result="7"; break; case 6 : result="6"; break; case 7 : result="5"; break; case 8 : result="4"; break; case 9 : result="3"; break; case 10 : result="2"; break; } //document.write(result); return result;}//15位转18位function Get18(idCard){ if (CheckValue(idCard)){ var id = idCard; var id18=id; if (id.length==0){ alert("请输入15位身份证号!"); return false; } if (id.length==15){ if (id.substring(6,8)>20){ id18=id.substring(0,6)+"19"+id.substring(6,15); }else{ id18=id.substring(0,6)+"20"+id.substring(6,15); } id18=id18+GetVerifyBit(id18); } return id18; }else{ return false; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?