导语:如何使用JavaScript实现香港身份格式及真伪性验证呢?下面是小编给大家提供的代码实现,大家可以参考阅读,更多详情请关注应届毕业生考试网。
function IsHKID(str) {
var strValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
// basic check length
if (th < 8)
return false;
// handling bracket
if (At(th-3) == '(' && At(th-1) == ')')
str = tring(0, th - 3) + At(th -2);
// convert to upper case
str = perCase();
// regular expression to check pattern and split
var hkidPat = /^([A-Z]{1,2})([0-9]{6})([A0-9])$/;
var matchArray = h(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 (th == 2) {
checkSum += 9 * (10 + xOf(At(0)));
checkSum += 8 * (10 + xOf(At(1)));
} else {
checkSum += 9 * 36;
checkSum += 8 * (10 + xOf(charPart));
}
// calculate the checksum for numeric part
for (var i = 0, j = 7; i < th; i++, j--)
checkSum += j * At(i);
// verify the check digit
var remaining = checkSum % 11;
var verify = remaining == 0 ? 0 : 11 - remaining;
return verify == checkDigit || (verify == 10 && checkDigit == 'A');
}
上面那段验证的很精密,包含身份证真实性的`校验,如果只是想验证输入的香港身份证格式,请使用下面的这段js。
function IsHKID(str) {
var strValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
// basic check length
if (th < 8)
return false;
// handling bracket
if (At(th-3) == '(' && At(th-1) == ')')
str = tring(0, th - 3) + At(th -2);
// convert to upper case
str = perCase();
// regular expression to check pattern and split
var hkidPat = /^([A-Z]{1,2})([0-9]{6})([A0-9])$/;
var matchArray = h(hkidPat);
// not match, return false
if (matchArray == null)
return false;
return true;
}