javascript验证香港身份证的格式或真实性
程序员文章站
2023-04-01 20:27:33
话不多说,请看代码
function ishkid(str) {
var strvalidchars = "abcdefghijklmnopqrstuvwxy...
话不多说,请看代码
function ishkid(str) { var strvalidchars = "abcdefghijklmnopqrstuvwxyz" // basic check length if (str.length < 8) return false; // handling bracket if (str.charat(str.length-3) == '(' && str.charat(str.length-1) == ')') str = str.substring(0, str.length - 3) + str.charat(str.length -2); // convert to upper case str = str.touppercase(); // regular expression to check pattern and split var hkidpat = /^([a-z]{1,2})([0-9]{6})([a0-9])$/; var matcharray = str.match(hkidpat); // not match, return false if (matcharray == null) return false; // the character part, numeric part and check digit part var charpart = matcharray[1]; var numpart = matcharray[2]; var checkdigit = matcharray[3]; // calculate the checksum for character part var checksum = 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)); } // calculate the checksum for numeric part for (var i = 0, j = 7; i < numpart.length; i++, j--) checksum += j * numpart.charat(i); // verify the check digit var remaining = checksum % 11; var verify = remaining == 0 ? 0 : 11 - remaining; return verify == checkdigit || (verify == 10 && checkdigit == 'a'); }
在网上找了很久都没合意的验证方式,最后通过google找到一个国外写的js验证,发现可以使用。
上面那段验证的很精密,包含身份证真实性的校验,如果只是想验证输入的香港身份证格式,请使用下面的这段js。
function ishkid(str) { var strvalidchars = "abcdefghijklmnopqrstuvwxyz" // basic check length if (str.length < 8) return false; // handling bracket if (str.charat(str.length-3) == '(' && str.charat(str.length-1) == ')') str = str.substring(0, str.length - 3) + str.charat(str.length -2); // convert to upper case str = str.touppercase(); // regular expression to check pattern and split var hkidpat = /^([a-z]{1,2})([0-9]{6})([a0-9])$/; var matcharray = str.match(hkidpat); // not match, return false if (matcharray == null) return false; return true; }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!