function
CheckIDCard(StrNumber)
...
{//判断身份证号码格式函数//公民身份号码是特征组合码,//排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码//身份证号码长度判断if(StrNumber.length<15||StrNumber.length==16||StrNumber.length==17||StrNumber.length>18)...{CheckIDCard =false;}//身份证号码最后一位可能是超过100岁老年人的X//所以排除掉最后一位数字进行数字格式测试//全部换算成17位数字格式var Ai;if(StrNumber.length==18)...{Ai = StrNumber.substring(0,17);}else...{Ai =StrNumber.substring(0,6)+"19"+StrNumber.substring(6,9);} if(IsNumeric(Ai)==false)...{return false;}var strYear,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)...{return false;}var arrVerifyCode = new Array("1","0","x","9","8","7","6","5","4","3","2");var Wi = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);var i,TotalmulAiWi=0;for (i=0; loop<16;loop++) ...{ TotalmulAiWi = TotalmulAiWi + parseInt(Ai.substring(i+1,1)) * Wi[i]; }var modValue =TotalmulAiWi%11 ;var strVerifyCode = arrVerifyCode[modValue];Ai = Ai & strVerifyCode;if((StrNumber.length== 18)&&(StrNumber!=Ai))...{return false;}}
function
IsNumeric(oNum)
...
{ if(!oNum) return false; var strP=/^d+(.d+)?$/; if(!strP.test(oNum)) return false; try...{ if(parseFloat(oNum)!=oNum) return false; } catch(ex) ...{ return false; } return true; }
function
IsValidDate(psYear, psMonth, psDay)
...
{ if(psYear==null || psMonth==null || psDay==null) ...{ return false; } var sYear = new String(psYear); var sMonth = new String(psMonth); var sDay = new String(psDay); if(IsValidYear(sYear)==false) ...{ return false; } if(IsValidMonth(sMonth)==false) ...{ return false; } if(IsValidDay(sDay)==false) ...{ return false; } var nYear = parseInt(sYear, 10); var nMonth = parseInt(sMonth, 10); var nDay = parseInt(sDay, 10); if(sYear=="" && sMonth=="" && sDay=="") ...{ return true; } if(sYear=="" || sMonth=="" || sDay=="") ...{ return false; } if(nMonth < 1 || 12 < nMonth) ...{ return false; } if(nDay < 1 || 31 < nDay) ...{ return false; } if(nMonth == 2) ...{ if((nYear % 400 == 0) || (nYear % 4 == 0) && (nYear % 100 != 0)) ...{ if((nDay < 1) || (nDay > 29)) ...{ return false; } } else ...{ if((nDay < 1) || (nDay > 28)) ...{ return false; } } } else if((nMonth == 1) || (nMonth == 3) || (nMonth == 5) || (nMonth == 7) || (nMonth == 8) || (nMonth == 10) || (nMonth == 12)) ...{ if((nDay < 1) || (31 < nDay)) ...{ return false; } } else ...{ if((nDay < 1) || (30 < nDay)) ...{ return false; } } return true;}
转载请注明原文地址: https://ibbs.8miu.com/read-10086.html