functionCheckIDCard(StrNumber)...{//判断身份证号码格式函数//公民身份号码是特征组合码,//排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码//身份证号码长度判断if(StrNumber.length<15||StrNumber.length==16||StrNumber.length==17||StrNumber.length>18)...{CheckIDCard=false;}//身份证号码最后一位可能是超过100岁老年人的X//所以排除掉最后一位数字进行数字格式测试//全部换算成17位数字格式varAi;if(StrNumber.length==18)...{Ai=StrNumber.substring(0,17);}else...{Ai=StrNumber.substring(0,6)+"19"+StrNumber.substring(6,9);}if(IsNumeric(Ai)==false)...{returnfalse;}varstrYear,strMonth,strDay,strBirthDay;strYear=parseInt(Ai.substring(Ai,6,4));strMonth=parseInt(Ai.substring(Ai,10,2));strDay=parseInt(Ai.substring(Ai,12,2));if(IsValidDate(strYear,strMonth,strDay)==false)...{returnfalse;}vararrVerifyCode=newArray("1","0","x","9","8","7","6","5","4","3","2");varWi=newArray(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);vari,TotalmulAiWi=0;for(i=0;loop<16;loop++)...{TotalmulAiWi=TotalmulAiWi+parseInt(Ai.substring(i+1,1))*Wi[i];}varmodValue=TotalmulAiWi%11;varstrVerifyCode=arrVerifyCode[modValue];Ai=Ai&strVerifyCode;if((StrNumber.length==18)&&(StrNumber!=Ai))...{returnfalse;}}functionIsNumeric(oNum)...{if(!oNum)returnfalse;varstrP=/^d+(.d+)?$/;if(!strP.test(oNum))returnfalse;try...{if(parseFloat(oNum)!=oNum)returnfalse;}catch(ex)...{returnfalse;}returntrue;}functionIsValidDate(psYear,psMonth,psDay)...{if(psYear==null||psMonth==null||psDay==null)...{returnfalse;}varsYear=newString(psYear);varsMonth=newString(psMonth);varsDay=newString(psDay);if(IsValidYear(sYear)==false)...{returnfalse;}if(IsValidMonth(sMonth)==false)...{returnfalse;}if(IsValidDay(sDay)==false)...{returnfalse;}varnYear=parseInt(sYear,10);varnMonth=parseInt(sMonth,10);varnDay=parseInt(sDay,10);if(sYear==""&&sMonth==""&&sDay=="")...{returntrue;}if(sYear==""||sMonth==""||sDay=="")...{returnfalse;}if(nMonth<1||12<nMonth)...{returnfalse;}if(nDay<1||31<nDay)...{returnfalse;}if(nMonth==2)...{if((nYear%400==0)||(nYear%4==0)&&(nYear%100!=0))...{if((nDay<1)||(nDay>29))...{returnfalse;}}else...{if((nDay<1)||(nDay>28))...{returnfalse;}}}elseif((nMonth==1)||(nMonth==3)||(nMonth==5)||(nMonth==7)||(nMonth==8)||(nMonth==10)||(nMonth==12))...{if((nDay<1)||(31<nDay))...{returnfalse;}}else...{if((nDay<1)||(30<nDay))...{returnfalse;}}returntrue;}