javascript验证香港身份证的格式或真实性
话不多说,请看代码
functionIsHKID(str){ varstrValidChars="ABCDEFGHIJKLMNOPQRSTUVWXYZ" //basicchecklength if(str.length<8) returnfalse; //handlingbracket if(str.charAt(str.length-3)=='('&&str.charAt(str.length-1)==')') str=str.substring(0,str.length-3)+str.charAt(str.length-2); //converttouppercase str=str.toUpperCase(); //regularexpressiontocheckpatternandsplit varhkidPat=/^([A-Z]{1,2})([0-9]{6})([A0-9])$/; varmatchArray=str.match(hkidPat); //notmatch,returnfalse if(matchArray==null) returnfalse; //thecharacterpart,numericpartandcheckdigitpart varcharPart=matchArray[1]; varnumPart=matchArray[2]; varcheckDigit=matchArray[3]; //calculatethechecksumforcharacterpart varcheckSum=0; if(charPart.length==2){ checkSum+=9*(10+strValidChars.indexOf(charPart.charAt(0))); checkSum+=8*(10+strValidChars.indexOf(charPart.charAt(1))); }else{ checkSum+=9*36; checkSum+=8*(10+strValidChars.indexOf(charPart)); } //calculatethechecksumfornumericpart for(vari=0,j=7;i<numPart.length;i++,j--) checkSum+=j*numPart.charAt(i); //verifythecheckdigit varremaining=checkSum%11; varverify=remaining==0?0:11-remaining; returnverify==checkDigit||(verify==10&&checkDigit=='A'); }
在网上找了很久都没合意的验证方式,最后通过Google找到一个国外写的js验证,发现可以使用。
上面那段验证的很精密,包含身份证真实性的校验,如果只是想验证输入的香港身份证格式,请使用下面的这段js。
functionIsHKID(str){ varstrValidChars="ABCDEFGHIJKLMNOPQRSTUVWXYZ" //basicchecklength if(str.length<8) returnfalse; //handlingbracket if(str.charAt(str.length-3)=='('&&str.charAt(str.length-1)==')') str=str.substring(0,str.length-3)+str.charAt(str.length-2); //converttouppercase str=str.toUpperCase(); //regularexpressiontocheckpatternandsplit varhkidPat=/^([A-Z]{1,2})([0-9]{6})([A0-9])$/; varmatchArray=str.match(hkidPat); //notmatch,returnfalse if(matchArray==null) returnfalse; returntrue; }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!