JS验证身份证
<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,女40function 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>
?