首页
学习
活动
专区
工具
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中进行基本的校验。

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

相关·内容

12分32秒

如何免费智能识别身份证信息?

4分47秒

规则引擎

2分5秒

css样式规则总结

7.8K
-

全国首张微信身份证签发 预计明年1月推向全国

7分37秒

126_Sentinel系统规则

10分30秒

137_Sentinel持久化规则

6分18秒

39_Ribbon负载规则替换

16分11秒

107 -shell基础-变量命名规则

5分29秒

Electron创建圆形的不规则窗口

3分17秒

94_CIG配置监控业务规则

3分3秒

114_Sentinel流控规则简介

12分44秒

098-报警实践-配置提醒规则

领券