java语言 百分网手机站

如何使用JavaScript实现香港身份格式及真伪性验证

时间:2020-10-22 16:44:06 java语言 我要投稿

如何使用JavaScript实现香港身份格式及真伪性验证

  导语:如何使用JavaScript实现香港身份格式及真伪性验证呢?下面是小编给大家提供的代码实现,大家可以参考阅读,更多详情请关注应届毕业生考试网。

  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');

  }

  上面那段验证的.很精密,包含身份证真实性的校验,如果只是想验证输入的香港身份证格式,请使用下面的这段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;

  }

【如何使用JavaScript实现香港身份格式及真伪性验证】相关文章:

1.PHP中使用crypt()实现用户身份验证

2.PHP如何通过会话控制实现身份验证

3.php如何实现验证码

4.PHP如何实现注册后邮箱验证和帐号激活

5.php实现验证码制作

6.如何识别海运提单的真伪

7.银行理财产品如何验真伪

8.java如何生成验证码呢

9.java使用动态代理来实现AOP