javascript验证香港身份证的格式或真实性

时间:2021-05-26

话不多说,请看代码

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; }

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章