身份证号码的正则表达式及验证详解JavaScript,Regex

方案1正则表达式整合如下,并附有测试程序。方案2则在方案1基础上,引入省级地址码校验,提升验证准确性。并提供出生日期码校验、校验码校验的函数与测试程序。校验码计算较为复杂,公式如下所示:公式:其中 ai 表示身份证本体码的第 i 位值,Wi 表示第 i 位的加权因子值。校验码计算程序与测试代码...
身份证号码的正则表达式及验证详解JavaScript,Regex
在进行用户实名验证时,常需利用身份证号码的正则表达式及校验方案。本文提供两种方案,使用者可依据项目需求选择适用方案。

身份证号码由十七位数字构成,包括地址码、出生日期码、顺序码与校验码。以北京市朝阳区女性身份证号码为例,其结构如下图所示。

方案1采用分步验证方法,设定如下规则:

1.1 地址码规则:正则表达式为/^[1-9]\d{5}/。

1.2 年份码规则:正则表达式为/(18|19|20)\d{2}/。若无需18开头年份,可去除18。

1.3 月份码规则:正则表达式为/((0[1-9])|(1[0-2]))/。

1.4 日期码规则:正则表达式为/(([0-2][1-9])|10|20|30|31)/。

1.5 顺序码规则:正则表达式为/\d{3}/。

1.6 校验码规则:正则表达式为/[0-9Xx]/。

方案1正则表达式整合如下,并附有测试程序。

方案2则在方案1基础上,引入省级地址码校验,提升验证准确性。并提供出生日期码校验、校验码校验的函数与测试程序。校验码计算较为复杂,公式如下所示:

公式:其中 ai 表示身份证本体码的第 i 位值,Wi 表示第 i 位的加权因子值。

校验码计算程序与测试代码如下。

方案2的整体代码整合如下。

以上内容系三胖对身份证号码验证的理解与分析,如有不妥之处,请指正。2024-10-07
mengvlog 阅读 64 次 更新于 2025-09-08 22:30:35 我来答关注问题0
  •  宜美生活妙招 15/18位身份证号码验证的正则表达式总结

    ):表示年份的前两位,可以是18、19或者2029、3039。 d{2}:表示年份的后两位。 |):表示月份,0112月。 |10|20|30|31):表示天数,0131天。 d{3}:表示顺序码,三位数字。 [09Xx]:表示校验位,可以是数字09或者大写字母X。15位身份证号码的正则表达式: 正则表达式:^[19...

  •  文暄生活科普 15/18位身份证号码验证的正则表达式总结

    针对18位身份证号码,其格式为:xxxxxx yyyy MM dd 375 0。其中,xxxxxx为6位地址编码,yyyy为年的前两位,MM为月份,dd为天数,375为3位顺序码,0为校验位。正则表达式为:^[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{...

  •  文暄生活科普 验证身份证号码的正确正则表达式

    验证身份证号码的正确正则表达式为:^d{17}$。以下是该正则表达式的详细解释:^:表示匹配字符串的开始位置,确保从输入字符串的第一个字符开始匹配。d{17}:表示匹配连续的17个数字字符。d在正则表达式中代表数字字符,确保身份证号码的前17位是数字。:表示匹配一个数字字符d或者大写字母X。在身份证...

  •  深空游戏 JS正则表达式详解及身份证号码验证(简易版)

    顺序码长度为任意的3位数字,校验码长度为1位,可以是数字,也可以是不区分大小写的字母x或X。身份证号码正则表达式汇总:/^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/。测试代码:console.log(p.test("11010519491231002X"...

  • anonymous 验证身份证号码的正确正则表达式

    验证身份证号码的正确正则表达式 /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/ function isCardNo(card){ // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部