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

js 身份证校验码

在JavaScript中进行身份证号码校验通常涉及到对身份证号码的最后一位校验码进行验证。身份证号码的校验码是根据前17位数字按照一定的加权算法计算得出的,用于验证身份证号码的正确性。

基础概念

  1. 加权算法:身份证号码的前17位每位都有一个固定的权重,从左到右分别为:7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2。将这17位数字分别与对应的权重相乘,然后求和。
  2. 模运算:将加权求和的结果对11取模,得到一个余数。
  3. 校验码映射:根据余数得到对应的校验码。余数0-10分别对应的校验码是1, 0, X, 9, 8, 7, 6, 5, 4, 3, 2。

优势

  • 身份证号码校验可以有效地防止录入错误,提高数据的准确性。
  • 在用户注册、登录等场景中,进行身份证校验可以提高系统的安全性。

应用场景

  • 用户注册时验证身份信息的真实性。
  • 在线支付、贷款等需要验证用户身份的场景。
  • 政务服务、公共服务等需要验证公民身份信息的场合。

示例代码

下面是一个简单的JavaScript函数,用于验证身份证号码的校验码是否正确:

代码语言:txt
复制
function validateIDCard(idCard) {
    const weights = [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'];

    if (idCard.length !== 18) {
        return false;
    }

    let sum = 0;
    for (let i = 0; i < 17; i++) {
        sum += parseInt(idCard[i]) * weights[i];
    }

    const mod = sum % 11;
    const checkCode = checkCodes[mod];

    return checkCode === idCard[17].toUpperCase();
}

// 使用示例
const idCard = '11010519491231002X';
console.log(validateIDCard(idCard)); // 输出 true 或 false

注意事项

  • 上述代码仅校验了身份证号码的格式和校验码,没有校验地区编码和出生日期的合法性。在实际应用中,可能还需要进行这些校验。
  • 身份证号码涉及个人隐私,应妥善保管,避免泄露。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券