码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2014-11-14 18:01:25      阅读:420      评论:0      收藏:0      [点我收藏+]

标签:正则表达式   电话号码   手机号码   区号   

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

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

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

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

bubuko.com,布布扣

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

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

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

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

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

bubuko.com,布布扣

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

本文出自 “飞翔的猫咪” 博客,请务必保留此出处http://flyingcat2013.blog.51cto.com/7061638/1576568

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

标签:正则表达式   电话号码   手机号码   区号   

原文地址:http://flyingcat2013.blog.51cto.com/7061638/1576568

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!