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

身份证规则+js

身份证号码是用于标识中国公民身份的一串数字,通常由18位组成,其结构如下:

  1. 前6位:表示行政区划代码,即户籍所在地的地区代码。
  2. 第7到14位:表示出生日期,格式为YYYYMMDD。
  3. 第15到17位:表示顺序码,其中奇数分配给男性,偶数分配给女性。
  4. 第18位:是校验码,用于校验身份证号码的正确性,范围是0-9和X。

身份证号码校验的JavaScript实现

以下是一个简单的JavaScript函数,用于校验身份证号码的格式和校验码:

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

    // 加权因子
    const weight = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
    // 校验码
    const checkCode = ['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)) * weight[i];
    }

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

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

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

优势

  • 准确性:通过校验码确保身份证号码的正确性。
  • 效率:简单的计算和比较,适合前端快速验证。

应用场景

  • 用户注册:在用户注册时验证身份证号码的合法性。
  • 信息管理:在管理系统中确保身份证信息的准确性。

注意事项

  • 此函数仅校验身份证号码的格式和校验码,不验证行政区划代码和出生日期的真实性。
  • 对于更严格的验证,可能需要结合数据库或第三方服务进行更详细的检查。

希望这个答案能帮助你理解身份证号码的结构和如何在JavaScript中进行基本的校验。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券