说说手机号码正则表达式

最近做一个项目需要手机号码验证,最坑的还需要通过手机号码查询出手机属于哪家运营商。一开始想的是找市面上的手机号码查询接口,但是考虑到成本和可使用性问题(部分接口可能会收费,接口调用的多了可能会封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}$(比较大条的验证)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容