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

js 从身份证号码

从身份证号码中获取信息在JavaScript中可以通过正则表达式和一些逻辑处理来实现。身份证号码是中国公民的唯一身份标识,它包含了出生日期、性别等信息。以下是一些基础概念和相关操作:

身份证号码结构

  • 18位身份证号码:前6位是地址码,接下来的8位是出生日期(YYYYMMDD),再接下来的3位是顺序码,最后一位是校验码。
  • 15位身份证号码:前6位是地址码,接下来的6位是出生日期(YYMMDD),再接下来的3位是顺序码。

获取出生日期

代码语言:txt
复制
function getBirthDate(idNumber) {
    let birthDate = '';
    if (idNumber.length === 18) {
        birthDate = idNumber.substring(6, 14);
    } else if (idNumber.length === 15) {
        birthDate = '19' + idNumber.substring(6, 12);
    }
    return birthDate;
}

获取性别

代码语言:txt
复制
function getGender(idNumber) {
    let gender = '';
    if (idNumber.length === 18) {
        const genderCode = parseInt(idNumber.substring(16, 17));
        gender = genderCode % 2 === 0 ? '女' : '男';
    } else if (idNumber.length === 15) {
        const genderCode = parseInt(idNumber.substring(14, 15));
        gender = genderCode % 2 === 0 ? '女' : '男';
    }
    return gender;
}

校验身份证号码

校验身份证号码可以通过计算校验码来实现,以下是一个简化的校验函数:

代码语言:txt
复制
function validateIDNumber(idNumber) {
    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 (idNumber.length !== 18) return false;
    let sum = 0;
    for (let i = 0; i < 17; i++) {
        sum += parseInt(idNumber[i]) * weights[i];
    }
    const checkCode = checkCodes[sum % 11];
    return checkCode === idNumber[17].toUpperCase();
}

应用场景

  • 用户注册:在用户注册时验证身份证号码的有效性。
  • 信息展示:在用户个人中心展示用户的出生日期和性别信息。
  • 数据统计:根据身份证号码中的地址码进行区域统计。

注意事项

  • 隐私保护:处理身份证号码时要严格遵守相关法律法规,确保用户隐私不被泄露。
  • 错误处理:在实际应用中,需要对可能出现的错误情况进行处理,比如输入非数字字符等。

以上代码示例仅供参考,在实际应用中可能需要根据具体需求进行调整。

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

相关·内容

没有搜到相关的文章

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券