加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

验证手机和座机号码的正则表达式

发布时间:2020-12-14 01:31:37 所属栏目:百科 来源:网络整理
导读:在应用中验证电话号码是一个常见的功能,而电话号码包括手机号码和座机号码。今天写这个正则表达式写了比较久,记录在这里,以备后用。本文的一个基本假设: 手机号码都是11位,座机号码加上区号也是11位 。 先科普一下座机区号的规则:点击科普。这是网易博

在应用中验证电话号码是一个常见的功能,而电话号码包括手机号码和座机号码。今天写这个正则表达式写了比较久,记录在这里,以备后用。本文的一个基本假设:手机号码都是11位,座机号码加上区号也是11位

先科普一下座机区号的规则:点击科普。这是网易博客的一篇博文,简单说来座机区号是历史的产物,我也是看了这里才知道个大概。总结起来我认为可以归纳为这样:北京区号010,后面8位数;其他地区以以0为首位,2~9位次位,其余位为0~9。因此总结起来正则式应该是这样:

(010d{8})|(0[2-9]d{9})

而手机号则不一样了,手机号的号段不固定,目前能查阅到的运营商号段见下图:

wKioL1RlubHyBnMYAADFoECuQHo018.jpg

观察可以发现13*系列号段是齐全的,而14开头的只有145、147两个号段,15和18号段除了缺失154、184之外也是齐全的。因此正则表达式列出如下:

(13d{9})|(14[57]d{8})|(15[0-35-9]d{8})|(18[0-35-9]d{8})

两者连接起来可以验证手机和座机号码,如下:

(010d{8})|(0[2-9]d{9})|(13d{9})|(14[57]d{8})|(15[0-35-9]d{8})|(18[0-35-9]d{8})

上述式子经过在线测试工具初步测试通过,如图:

wKiom1RlvgHhWfqxAADCzjD2j1k324.jpg

这个表达式写得有些长,如果有更简洁的写法还请各位不吝赐教,谢谢!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读