首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用js编写身份证号码正确性

以下是使用 JavaScript 编写验证身份证号码正确性的示例代码:

代码语言:txt
复制
function validateIDCard(idCard) {
  const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
  if (!reg.test(idCard)) {
    return false;
  }

  // 加权因子
  const weightFactors = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
  // 校验码
  const checkCodes = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];

  let sum = 0;
  for (let i = 0; i < 17; i++) {
    sum += parseInt(idCard.charAt(i)) * weightFactors[i];
  }
  const mod = sum % 11;
  const checkCode = checkCodes[mod];

  return checkCode === idCard.charAt(17).toUpperCase();
}

// 示例用法
const idCard = "11010519491231002X";
console.log(validateIDCard(idCard)); 

这个函数首先使用正则表达式检查身份证号码的基本格式是否正确。然后,通过计算前 17 位数字与对应的加权因子乘积之和,取余数得到校验码的位置,与第 18 位进行比较来最终确定身份证号码的正确性。

应用场景:在用户注册、信息提交等需要验证身份信息的场景中使用。

优势:可以有效地对输入的身份证号码进行初步筛选和验证,提高数据的准确性和可靠性。

类型:这是一个基于规则和数学计算的验证类型。

可能出现的问题及解决方法:

  1. 输入包含非数字字符(除最后一位可能是 X 或 x):通过正则表达式提前过滤不符合格式的输入。
  2. 计算错误:确保加权因子数组和校验码数组的对应关系正确,以及计算过程中的类型转换准确。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的文章

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券