当前位置: 移动技术网 > IT编程>开发语言>JavaScript > javascript验证香港身份证的格式或真实性

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

2019年03月27日  | 移动技术网IT编程  | 我要评论

话不多说,请看代码

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

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网