日期:2014-05-16 浏览次数:20350 次
<scriptlanguage="javaScript"> //身份证号码校验,并从中拆分出出生年月日和性别 var yyyy; var mm; var dd; var birthday; var sex; 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); return Math.floor((parseInt(_getYear())*12+parseInt(_getMonth())-parseInt(getYear())*12-parseInt(mm))/12); } //判断是否大龄,男50,女40 function isBigAge() { if(parseInt(getAge())>=40&&parseInt(getSex())==2) return "1"; if(parseInt(getAge())>=50&&parseInt(getSex())==1) return "1"; return "0"; } //校验身份证号码 function CheckValue(idCard) { var id=idCard; var id_length=id.length; if(id_length==0) { alert("请输入身份证号码!"); return false; } if(id_length!=15&&id_length!=18) { alert("身份证号长度应为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) { alert("输入身份证号,月份非法!"); return false; } if(dd>31||dd<=0) { alert("输入身份证号,日期非法!"); 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) { alert("身份证中\"X\"输入位置不正确!"); return false; } yyyy=id.substring(6,10); if(yyyy>2200||yyyy<1900) { alert("输入身份证号,年度非法!"); return false; } mm=id.substring(10,12); if(mm>12||mm<=0) { alert("输入身份证号,月份非法!"); return false; } dd=id.substring(12,14); if(dd>31||dd<=0) { alert("输入身份证号,日期非法!"); return false; } if(id.charAt(17)=="x"||id.charAt(17)=="X") { if("x"!=GetVerifyBit(id)&&"X"!=GetVerifyBit(id)) { alert("身份证校验错误,请检查最后一位!"); return false; } }else { if(id.charAt(17)!=GetVerifyBit(id)) { alert("身份证校验错误,请检查最后一位!"); 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; } } </script>
?