js 验证身份证
function checkIdcard(idcards){
var idcard=idcards.value;
var Errors=new
Array("ÑéÖ?Í??ý!","Éí?ÝÖ?ºÅÂëÎ?Êý???Ô!","Éí?ÝÖ?ºÅÂë?öÉúÈÕÆÚ???ö??Î??òº?ÓÐ?Ç??×Ö?û!","Éí?ÝÖ?ºÅÂëÐ?Ñé?íÎó!","Éí?ÝÖ?µØÇø?Ç??!");
var
area={11:"????",12:"Ìì?ò",13:"ºÓ??",14:"É?Î?",15:"ÄÚÃÉ?Å",21:"ÁÉÄþ",22:"?ªÁÖ",23:"ºÚÁú?,",31:"ÉϺ?",32:"?,ËÕ",33:"Õã?,",34:"???Õ",35:"????",36:"?,Î?",37:"É???",41:"ºÓÄÏ",42:"ºþ??",43:"ºþÄÏ",44:"?ã??",45:"?ãÎ?",46:"º?ÄÏ",50:"ÖØÇì",51:"ËÄ??",52:"?óÖÝ",53:"ÔÆÄÏ",54:"Î??Ø",61:"ÉÂÎ?",62:"?ÊËà",63:"Çàº?",64:"ÄþÏÄ",65:"ÐÂ??",71:"Ì?Íå",81:"Ïã?Û",82:"?ÄÃÅ",91:"?úÍâ"}
var idcard,Y,JYM;
var S,M;
var idcard_array = new Array();
idcard_array = idcard.split("");
if(area[parseInt(idcard.substr(0,2))]==null) alert( Errors[4]);
switch(idcard.length){
case 15:
if ((parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 &&
(parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){
ereg =
/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//?âÊÔ?öÉúÈÕÆڵĺÏ??ÐÔ
}
else{
ereg =
/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//?âÊÔ?öÉúÈÕÆڵĺÏ??ÐÔ
}
if(ereg.test(idcard))
alert( Errors[0]);
else
alert( Errors[2]);
break;
case 18:
if ( parseInt(idcard.substr(6,4)) % 4 == 0 ||
(parseInt(idcard.substr(6,4)) % 100 == 0 &&
parseInt(idcard.substr(6,4))%4 == 0 )){
ereg =
/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]
|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//ÈòÄê?öÉúÈÕÆڵĺÏ??ÐÔÕýÔò?í?ïÊ?
}
else{
ereg =
/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//Æ?Äê?öÉúÈÕÆڵĺÏ??ÐÔÕýÔò?í?ïÊ?
}
if(ereg.test(idcard)){
S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7 + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9 + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10 + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5 + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8 + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4 + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2 + parseInt(idcard_array[7]) * 1 + parseInt(idcard_array[8]) * 6 + parseInt(idcard_array[9]) * 3 ;
Y = S % 11;
M = "F";
JYM = "10X98765432";
M = JYM.substr(Y,1);
if(M == idcard_array[17])
alert( Errors[0]);
else
alert( Errors[3]);
}
else
alert( Errors[2]);
break;
default:
alert( Errors[1]);
break;
}
}