推荐设备MORE

图标设计网站

图标设计网站

行业新闻

微信注册小程序_javascript验证香港身份证的格局或

日期:2021-01-12
我要分享
javascript验证香港身份证的格式或真实性       本文分享了利用javascript验证香港身份证的格式或真实性的代码,具有很好的参考价值,下面跟着小编一起来看下吧
// 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;

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