Skip to content

Instantly share code, notes, and snippets.

@VincentSit
Created December 29, 2018 17:14
Show Gist options
  • Save VincentSit/17b9ad1b7b484e74de35b6f1293a63c3 to your computer and use it in GitHub Desktop.
Save VincentSit/17b9ad1b7b484e74de35b6f1293a63c3 to your computer and use it in GitHub Desktop.
手机号码正则表达式

最新版本请直接去仓库查看。 https://github.com/VincentSit/ChinaMobilePhoneNumberRegex


ChinaMobilePhoneNumberRegex

一组匹配中国大陆手机号码的正则表达式。

正则表达式 (PCRE)

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

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

手机卡

匹配所有(基础运营商 + 虚拟运营商)

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

匹配所有(基础运营商 + 虚拟运营商 + 海事卫星通信 + 应急通信)

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

匹配基础运营商

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

匹配中国移动

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

匹配中国联通

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

匹配中国电信

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

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

^1749\d{7}$

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

^174(0[0-6]|1[0-2])\d{6}$

匹配虚拟运营商

^1(?:7[01]|67)\d{8}$

匹配中国移动

^170[356]\d{7}$

匹配中国联通

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

匹配中国电信

^170[0-2]\d{7}$

物联网数据卡

匹配所有

^14(?:10\d|40\d|6\d{2}|8\d{2})\d{8}$

匹配中国移动

^14(40|8\d)\d{9}$

匹配中国联通

^146\d{10}$

匹配中国电信

^1410\d{9}$

上网卡

匹配所有

^14[579]\d{8}$

匹配中国移动

^147\d{8}$

匹配中国联通

^145\d{8}$

匹配中国电信

^149\d{8}$

其他

匹配所有可以收发短信的号段

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

在线测试/调试

https://regex101.com
https://regexr.com
https://www.debuggex.com (PCRE 在线视觉化)

规则

手机卡 - 基础运营商

  • 支持语音通话 / 短信 / 数据流量
  • 号码长度 11 位
运营商 [1] 号段
中国移动 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

手机卡 - 虚拟运营商

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

物联网数据卡

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

上网卡

  • 支持语音通话(部分) / 短信 / 数据流量
  • 号码长度 11 位
运营商[1] 号段 语音通话 [2]
中国移动 147 支持
中国联通 145 不支持
中国电信 149 支持
  1. 注意:由于携号转网的在部分地区已经试行,对于成功进行携号转网的用户,手机号段不再能体现其当前所属运营商。
  2. 根据工信部相关文件,145 / 147 / 149 号段允许提供语音通话功能,运营商可以根据用户需要自主决定是否提供语音通话功能。目前 147 / 149 号段已经有支持语音通话的号码卡放出。

参考

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

更新日志

2018.12.29

  • 添加 146 / 149 / 167 / 191 / 1440X / 148XX / 1410X / 174-00~05 / 174-06~12 / 174-9 号段支持。

2017.08.09

  • 添加 166 / 198 / 199 号段支持。

2016.10.15

  • 添加英文文档。
  • 添加 175 号段支持。
  • 移除测试工程。
  • 修复 1349 号段匹配问题。

2016.04.05

  • 添加 171 号段支持。
  • 分离 14* 号段匹配。
  • 完善虚拟运营商号段匹配。

2014.12.19

  • 初次发布。

协议

MIT

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment