其他教程

其他教程

Products

当前位置:首页 > 其他教程 >

急求验证座机号码的正则表达式

GG网络技术分享 2025-03-18 16:14 2


问题描述:

验证座机号码的正则表达式,如:0871-65567689、02353635879、023-53635879、65567689,谢谢亲们的帮助

网友观点:

 ^(\\d{2,4}-?)?\\d{7,8}$

没问题啊。。下面使用js测试的,都为true

 <script>

var rx = /^(0\\d{2,3}-?)?\\d{7,8}$/;

alert(rx.test(\'0871-65567689\'));

alert(rx.test(\'023-53635879\'));

alert(rx.test(\'02353635879\'));

alert(rx.test(\'65567689\'));

</script>

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

简言

在做用户实名验证时,常会用到身份证号码的正则表达式及校验方案。本文列举了两种验证方案,大家可以根据自己的项目实际情况,选择适合的方案。



身份证号码说明

居民身份证号码,正确、正式的称谓应该是“公民身份号码”。根据【中华人民共和国国家标准 GB 11643-1999】中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

以北京市朝阳区一女性身份证号码为例,身份证号码所表示的含义如下图所示:



注:该身份证号码来源于国标【GB 11643-1999】。

下面我们就从零开始完成一个完整的身份证号码校验过程。

方案1 (简单)

1.1 分部规则

我们首先提出方案1,并分步做如下规则定义:

1.1.1 地址码规则:


  • 地址码长6位
  • 以数字1-9开头
  • 后5位为0-9的数字

根据以上规则,写出地址码的正则表达式: /^[1-9]\\d{5}/

1.1.2 年份码规则:


  • 年份码长4位
  • 以数字18,19或20开头
  • 剩余两位为0-9的数字

根据以上规则,写出年份码的正则表达式: /(18|19|20)\\d{2}/。如果不需要18开头的年份,可以去掉18。

1.1.3 月份码规则:


  • 月份码长2位
  • 第一位数字为0,第二位数字为1-9
  • 或者第一位数字为1,第二位数字为0-2

根据以上规则,写出月份码的正则表达式: /((0[1-9])|(1[0-2]))/

1.1.4 日期码规则:


  • 日期码长2位
  • 第一位数字为0-2,第二位数字为1-9
  • 或者是10,20,30,31

根据以上规则,写出日期码的正则表达式 :/(([0-2][1-9])|10|20|30|31)/

1.1.5 顺序码规则:


  • 顺序码长3位
  • 顺序码是数字

根据以上规则,写出顺序码的正则表达式 :/\\d{3}/

1.1.6 校验码规则:


  • 校验码长1位
  • 可以是数字,字母x或字母X

根据以上规则,写出校验码的正则表达式 :/[0-9Xx]/

1.2 方案1正则表达式

综合以上6条规则,给出完整的正则表达式及测试程序如下:

标签:

提交需求或反馈

Demand feedback