用js实现身份证校验
<------------------js?ìÑéÉí?ÝÖ?ÊÇ?ñºÏ??--------------------->
function
checkPersonIdandgetValue(control,ad_birthday,as_sex,empty){
control.value = Trim(control.value);
var year;
var month;
var day;
var ls_tmp;
if( empty == "0" && (control.value == ""||control.value.length == 0)){
return true;
}
if (empty == "1")
{
if (control.value == ""||control.value.length == 0)
{
control.select();
alert("Éí?ÝÖ?ºÅÂëÂ?ÈëµÄÊý?Ý??ÄÜΪ?Õ" );
return false;
}
}
if (control.value !="")
{
if (control.value.length==15)
{
year = "19"+control.value.substr(6,2);
month= control.value.substr(8,2);
day = control.value.substr(10,2);
if (!isDateNumberFormat(month,day,year)) //?ìÑéÉí?ÝÖ?ºÅÂëÖеÄ?öÉúÈÕÆÚ???ÖÊÇ?ñΪºÏ??ÈÕÆÚ
{
alert("Éí?ÝÖ?ºÅÂëÈÕÆÚ???Ö?íÎó??"+year+"-"+month+"-"+day);
control.select();
return false;
}
ls_tmp = year+"-"+month+"-"+day;
ad_birthday.value=ls_tmp;
if (control.value.substr(14,1)%2==1) //Éí?ÝÖ?ºÅÂëµÄ×îºóÒ?Î?ÊÇ?ñΪÆæÊý
as_sex.value="1";
if (control.value.substr(14,1)%2==0)
as_sex.value="2";
return true;
}
if (control.value.length==18)
{
var ls_sfz;
var ls_sign="";
var ls_calculatesign;
var li_valid;
var li_count;
var li_charp;
var li_result;
ls_sfz = control.value;
ls_sign = ls_sfz.substr(17,1);
ls_sfz = ls_sfz.substr(0,17);
year = control.value.substr(6,4);
month= control.value.substr(10,2);
day = control.value.substr(12,2);
if (!isDateNumberFormat(month,day,year))
{
alert("ÊäÈëµÄÉí?ÝÖ??öÉúÄêÔÂ??ºÏ??!!!");
control.focus();
return false;
}
li_valid = 0;
for (li_count=17;li_count>=1;li_count--)
{
if
(isNaN(parseInt(ls_sfz.substr(li_count-1,1))))
{
alert("ÊäÈëµÄÉí?ÝÖ?ÖÐÓÐ??ºÏ??µÄ×Ö?û!");
control.select();
return false;
}
li_valid=li_valid+(Math.pow(2,li_count)%11)*ls_sfz.substr(17-li_co
unt,1);
}
li_charp = li_valid%11;
if(li_charp==0)
ls_calculatesign = "1";
if(li_charp==1)
ls_calculatesign = "0";
if(li_charp==2)
ls_calculatesign = "X";
if(li_charp==3)
ls_calculatesign = "9";
if(li_charp==4)
ls_calculatesign = "8";
if(li_charp==5)
ls_calculatesign = "7";
if(li_charp==6)
ls_calculatesign = "6";
if(li_charp==7)
ls_calculatesign = "5";
if(li_charp==8)
ls_calculatesign = "4";
if(li_charp==9)
ls_calculatesign = "3";
if(li_charp==10)
ls_calculatesign = "2";
if (ls_sign.length == 1 && ls_sign != ls_calculatesign)
{
alert("ÊäÈëµÄÉí?ÝÖ?Ð?ÑéÎ???ºÏ??!!!");
control.select();
return false;
}
ls_tmp =
control.value.substr(6,4)+"-"+control.value.substr(10,2)+"-"+contr
ol.value.substr(12,2);
ad_birthday.value=ls_tmp;
if (control.value.substr(16,1)%2==1)
as_sex.value="1";
if (control.value.substr(16,1)%2==0)
as_sex.value="2";
return true;
}
else
{
alert("Éí?ÝÖ?ºÅÂë???È?íÎó??");
control.select();
return false;
}
}
return true; }