说说手机号码正则表达式

2016-11-23  本文已影响702人  我是Mr小赵先生

最近做一个项目需要手机号码验证,最坑的还需要通过手机号码查询出手机属于哪家运营商。一开始想的是找市面上的手机号码查询接口,但是考虑到成本和可使用性问题(部分接口可能会收费,接口调用的多了可能会封ip等)觉定还是用正则表达式来完成这一工作。

具体的js代码或者其它编程语言怎么写就不一一讲解了,具体的正则表达式如下

1、移动

目前的号码段有如下:

134,135,136,137,138,139,147,150,151,152,157,158,159,170,178,182,183,184,187,188

正则:^1(3[4-9]|4[7]|5[0-27-9]|7[08]|8[2-478])\\d{8}$

2、联通

目前的号码段如下:

130,131,132,145,155,156,170,171,175,176,185,186

正则:^1(3[0-2]|4[5]|5[56]|7[0156]|8[56])\\d{8}$

3、电信

目前的号码段如下:

133,149,153,170,173,177,180,181,189

正则:^1(3[3]|4[9]|53|7[037]|8[019])\\d{8}$

4、不区分运营商的正则

正则:1(3[0-9]|4[57]|5[0-35-9]|7[0135678]|8[0-9])\\d{8}$(比较精准的验证)

正则:^1[3|4|5|7|8][0-9]\d{8}$(比较大条的验证)

上一篇下一篇

猜你喜欢

热点阅读