正则表达式——匹配中国大陆手机号码

一、匹配所有号码(手机卡 + 数据卡 + 上网卡)

^(?:\+?86)?1(?:3\d{3}|5[^4\D]\d{2}|8\d{3}|7[^29\D](?(?<=4)(?:0\d|1[0-2]|9\d)|\d{2})|9[189]\d{2}|6[567]\d{2}|4(?:[14]0\d{3}|[68]\d{4}|[579]\d{2}))\d{6}$

二、匹配所有支持短信功能的号码(手机卡 + 上网卡)

^(?:\+?86)?1(?:3\d{3}|5[^4\D]\d{2}|8\d{3}|7[^29\D](?(?<=4)(?:0\d|1[0-2]|9\d)|\d{2})|9[189]\d{2}|6[567]\d{2}|4[579]\d{2})\d{6}$

三、手机卡

1、匹配所有

^(?:\+?86)?1(?:3\d{3}|5[^4\D]\d{2}|8\d{3}|7[^0129\D](?(?<=4)(?:0\d|1[0-2]|9\d)|\d{2})|9[189]\d{2}|66\d{2})\d{6}$

2、匹配中国移动

^(?:\+?86)?1(?:3[^0-3\D](?(?<=4)[^9\D]|\d)|5[^3-6\D]\d|8[23478]\d|(?:78|98)\d)\d{7}$

3、匹配中国联通

^(?:\+?86)?1(?:3[0-2]|[578][56]|66)\d{8}$

4、匹配中国电信

^(?:\+?86)?1(?:3[34](?(?<=4)(?:9)|\d)\d|53\d{2}|8[019]\d{2}|7[347](?(?<=4)(?:0[0-5])|\d{2})|9[19]\d{2})\d{6}$

5、匹配北京船舶通信导航有限公司(海事卫星通信)

^(?:\+?86)?1749\d{7}$

6、工业和信息化部应急通信保障中心(应急通信)

^(?:\+?86)?174(?:0[6-9]|1[0-2])\d{6}$

四、虚拟运营商

1、匹配所有

^(?:\+?86)?1(?:7[01]|6[57])\d{8}$

2、匹配中国移动

^(?:\+?86)?1(?:65\d|70[356])\d{7}$

3、匹配中国联通

^(?:\+?86)?1(?:70[4789]|71\d|67\d)\d{7}$

4、匹配中国电信

^(?:\+?86)?170[0-2]\d{7}$

五、物联网数据卡

1、匹配所有

^(?:\+?86)?14(?:[14]0|[68]\d)\d{9}$

2、匹配中国移动

^(?:\+?86)?14(?:40|8\d)\d{9}$

3、匹配中国联通

^(?:\+?86)?146\d{10}$

4、匹配中国电信

^(?:\+?86)?1410\d{9}$ 

六、上网卡

1、匹配所有

^(?:\+?86)?14[579]\d{8}$

2、匹配中国移动

^(?:\+?86)?147\d{8}$

3、匹配中国联通

^(?:\+?86)?145\d{8}$

4、匹配中国电信

^(?:\+?86)?149\d{8}$

七、在线测试/调试

https://regex101.com
https://regexr.com
https://www.debuggex.com

八、规则

1、手机卡 - 基础运营商

  • 支持语音通话 / 短信 / 数据流量
  • 号码长度 11 位
运营商 号段
中国移动 134-0~8 / 135 / 136 / 137 / 138 / 139 / 150 / 151 / 152 / 157 / 158 / 159 / 178 / 182 / 183 / 184 / 187 / 188 / 198
中国联通 130 / 131 / 132 / 155 / 156 / 166 / 175 / 176 / 185 / 186
中国电信 133 / 134-9 / 153 / 173 / 174-00~05 / 177 / 180 / 181 / 189 / 191 / 199
北京船舶通信导航有限公司(海事卫星通信) 174-9
工业和信息化部应急通信保障中心(应急通信) 174-06~12

2、手机卡 - 虚拟运营商

  • 支持语音通话 / 短信 / 数据流量
  • 号码长度 11 位
运营商 [1] 号段
中国移动 165 / 1703 / 1705 / 1706
中国联通 167 / 1704 / 1707 / 1708 / 1709 / 171
中国电信 1700 / 1701 / 1702

3、物联网数据卡

  • 支持数据流量
  • 号码长度 13 位
运营商 [1] 号段
中国移动 1440X / 148XX
中国联通 146XX
中国电信 1410X

4、上网卡

  • 支持语音通话(部分) / 短信 / 数据流量
  • 号码长度 11 位
运营商[1] 号段 语音通话 [2]
中国移动 147 支持
中国联通 145 不支持
中国电信 149 支持

九、注意

1. 由于携号转网的在部分地区已经试行,对于成功进行携号转网的用户,手机号段不再能体现其当前所属运营商。

2. 根据工信部相关文件,145 / 147 / 149 号段允许提供语音通话功能,运营商可以根据用户需要自主决定是否提供语音通话功能。目前 147 / 149 号段已经有支持语音通话的号码卡放出。

十、参考

中国内地移动终端通讯号码 - 维基百科

ChinaMobilePhoneNumberRegex

原文地址:https://www.cnblogs.com/renhui/p/10245469.html

时间: 2024-10-12 23:35:54

正则表达式——匹配中国大陆手机号码的相关文章

正则表达式匹配电话号码和手机号码

正则表达式 \d{3}-\d{8}|\d{4}-\d{7} 匹配 0511-4405222 | 021-87888822 不匹配 02-552255 12345-784787 正则表达式 (^\([0]\d{2}|\d{4}\))(\d{6,7}$) 匹配 (021)1234567 | (0411)123456 | (000)000000 不匹配 (123)1234567 | 025123456 | 0252345678 正则表达式 ^(?<national>\+?(?:86)?)(?<

正则表达式匹配身份证 电话号码 邮箱 住宅电话 邮编等

身份证号码的匹配 大陆的居民身份证号码有两种:18位和15位,15位的身份证号码是老一代身份证号码. 18位和15位的区别在于两个部分:第一,18位号码的年份以4位计而15位号码的年份为2位,如1987年在18位号码中为'1987'而在15位号码中为'87',这里1987只是作为一个例子可能1987年及以后根本不存在15位号码:第二处不同在于18位号码的最后一位为数字校验码,15位号码没有数字校验位. 好吧,可能你还不知道身份证号码各个部分代表着什么,那么让我简略地介绍一下. 身份证号码总共有4

中国大陆加港澳台手机正则验证

正则表达式:^[1][3-8]\d{9}$|^([6|9])\d{7}$|^[0][9]\d{8}$|^[6]([8|6])\d{5}$ 规则说明: 中国大陆:开头1 3-8号段,后边跟9位数字 台湾:09开头后面跟8位数字 香港:9或6开头后面跟7位数字 澳门:66或68开头后面跟5位数字 注意:以上表达式只验证港澳台及大陆手机号码,不包含座机小灵通及区号等验证

【转】正则表达式 匹配中文,英文字母和数字及_的写法!同时控制长度

匹配中文:[\u4e00-\u9fa5] 英文字母:[a-zA-Z] 数字:[0-9] 匹配中文,英文字母和数字及_: ^[\u4e00-\u9fa5_a-zA-Z0-9]+$ 同时判断输入长度:[\u4e00-\u9fa5_a-zA-Z0-9_]{4,10} ^[\w\u4E00-\u9FA5\uF900-\uFA2D]*$ 1.一个正则表达式,只含有汉字.数字.字母.下划线不能以下划线开头和结尾:^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$  其中:^

常用的正则表达式-匹配中英文、字母和数字

在做项目的过程中,使用正则表达式来匹配一段文本中的特定种类字符,是比较常用的一种方式,下面是对常用的正则匹配做了一个归纳整理. 匹配中文:[\u4e00-\u9fa5] 英文字母:[a-zA-Z] 数字:[0-9] 匹配中文,英文字母和数字及_: ^[\u4e00-\u9fa5_a-zA-Z0-9]+$ 同时判断输入长度: [\u4e00-\u9fa5_a-zA-Z0-9_]{4,10} ^[\w\u4E00-\u9FA5\uF900-\uFA2D]*$ 1.一个正则表达式,只含有汉字.数字.字

oracle 正则表达式 匹配

oracle 正则表达式 在实际应用中,想排除带有中文的字段值: select h.froomnumber from t_broker_house h where REGEXP_LIKE(froomnumber,'^([a-z0-9A-Z]|-)*$') 字符串’^198[0-9]$’可以匹配‘1980-1989’,如果希望统计出公司那些员工是80年-89年入职的,就可以使用如下的SQL语句: select * from emp e where regexp_like(to_char( e.hi

使用正则表达式匹配任意字符包括空格和换行符

注:元字符包括\ | ( ) [ ] { } ^ $ * + ? . ) 匹配中文字符的正则表达式: [\u4e00-\u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r评注:可以用来删除空白行 匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</>|<.*? />

正则表达式 匹配中文,英文字母和数字及_的写法!同时控制长度

匹配中文:[\u4e00-\u9fa5] 英文字母:[a-zA-Z] 数字:[0-9] 匹配中文,英文字母和数字及_: ^[\u4e00-\u9fa5_a-zA-Z0-9]+$ 同时判断输入长度:[\u4e00-\u9fa5_a-zA-Z0-9_]{4,10} ^[\w\u4E00-\u9FA5\uF900-\uFA2D]*$ 1.一个正则表达式,只含有汉字.数字.字母.下划线不能以下划线开头和结尾:^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$  其中:^

(转)比较常用的几个正则表达式(匹配数字)

正则表达式用于字符串处理.表单验证等场合,实用高效.现将一些常用的表达式收集于此,以备不时之需. 匹配中文字符的正则表达式: [\u4e00-\u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r评注:可以用来删除空白行 匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>