微信小程序 身份证号码验证 15/18位身份证号码验证的正则表达式总结(详细版)

本文介绍了15/18位身份证号码的正则表达式,用于开发中对输入身份证号码的有效性验证。重点讨论了18位身份证的构成,包括出生地编码、出生年月日、顺序编号、性别标识和效验码,并提供了相关案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单、效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧。

介绍

xxxxxx yyyy MM dd 375 0 十八位

xxxxxx yy MM dd 75 0 十五位

地区: [1-9]\d{5}
年的前两位: (18|19|([23]\d))            1800-2399
年的后两位: \d{2}
月份: ((0[1-9])|(10|11|12))
天数: (([0-2][1-9])|10|20|30|31)          闰年不能禁止29+
三位顺序码: \d{3}

两位顺序码: \d{2}

校验码: [0-9Xx]

正则表达式

十八位: ^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$

十五位: ^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$

总:

( ^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)

二代身份证是由18位数字组成的,1-6位出生地编码,7-10位出生年份,11-12位出生月份,13-14位出生日期,15-16位出生顺序编号,17位性别标号,18位效验码。所以只验证18位就可以了!

案例:

idcardblur: function (e) {
    let idcard = e.detail.value;
    let reg = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;

    if (reg.test(idcard) == false) {
      wx.showToast({
        title: '身份证号码有误',
        icon: 'none',
        duration: 3000
      })
    } else {
      this.setData({
        card_id: idcard
      })
    }

  },

参考链接:https://www.jb51.net/article/109384.htm

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值