雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

美国身份证的js正则表达式

2024-06-19 77

以下是美国身份证的正则表达式:

^(?!000|666|900)\d{9}$

该正则表达式可以匹配以下格式的美国身份证号码:

123456789

012345678

555555555

以下是使用 JavaScript 验证美国身份证号码有效性的示例:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>验证美国身份证号码</title>
</head>
<body>
<script>
function is_valid_us_id(id_number) {
  // 正则表达式
  const pattern = /^(?!000|666|900)\d{9}$/;

  // 验证
  if (!pattern.test(id_number)) {
    return false;
  }

  // 计算校验码
  let checksum = 0;
  for (let i = 0; i < 8; i++) {
    checksum += (i + 1) * parseInt(id_number[i]);
  }

  checksum %= 11;
  if (checksum === 0) {
    return true;
  } else if (checksum === 10) {
    return id_number[8] === "X";
  } else {
    return id_number[8] === String(11 - checksum);
  }
}

// 示例
const id_number = "123456789";
if (is_valid_us_id(id_number)) {
  console.log("身份证号码有效");
} else {
  console.log("身份证号码无效");
}
</script>
</body>
</html>

该示例首先定义了一个名为 is_valid_us_id 的函数,该函数接受一个参数 id_number,表示美国身份证号码。然后,使用正则表达式 ^(?!000|666|900)\d{9}$ 验证 id_number 的格式是否有效。如果格式有效,则计算校验码并与 id_number 中的校验码进行比较。如果校验码一致,则返回 true,表示身份证号码有效;否则返回 false,表示身份证号码无效。

最后,示例中提供了一个示例,用于验证身份证号码 123456789 的有效性。

更新于:5个月前
赞一波!2

文章评论

评论问答