正则表达式——匹配中国大陆手机号码
Posted renhui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式——匹配中国大陆手机号码相关的知识,希望对你有一定的参考价值。
一、匹配所有号码(手机卡 + 数据卡 + 上网卡)
^(?:+?86)?1(?:3d{3}|5[^4D]d{2}|8d{3}|7[^29D](?(?<=4)(?:0d|1[0-2]|9d)|d{2})|9[189]d{2}|6[567]d{2}|4(?:[14]0d{3}|[68]d{4}|[579]d{2}))d{6}$
二、匹配所有支持短信功能的号码(手机卡 + 上网卡)
^(?:+?86)?1(?:3d{3}|5[^4D]d{2}|8d{3}|7[^29D](?(?<=4)(?:0d|1[0-2]|9d)|d{2})|9[189]d{2}|6[567]d{2}|4[579]d{2})d{6}$
三、手机卡
1、匹配所有
^(?:+?86)?1(?:3d{3}|5[^4D]d{2}|8d{3}|7[^0129D](?(?<=4)(?:0d|1[0-2]|9d)|d{2})|9[189]d{2}|66d{2})d{6}$
2、匹配中国移动
^(?:+?86)?1(?:3[^0-3D](?(?<=4)[^9D]|d)|5[^3-6D]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|53d{2}|8[019]d{2}|7[347](?(?<=4)(?:0[0-5])|d{2})|9[19]d{2})d{6}$
5、匹配北京船舶通信导航有限公司(海事卫星通信)
^(?:+?86)?1749d{7}$
6、工业和信息化部应急通信保障中心(应急通信)
^(?:+?86)?174(?:0[6-9]|1[0-2])d{6}$
四、虚拟运营商
1、匹配所有
^(?:+?86)?1(?:7[01]|6[57])d{8}$
2、匹配中国移动
^(?:+?86)?1(?:65d|70[356])d{7}$
3、匹配中国联通
^(?:+?86)?1(?:70[4789]|71d|67d)d{7}$
4、匹配中国电信
^(?:+?86)?170[0-2]d{7}$
五、物联网数据卡
1、匹配所有
^(?:+?86)?14(?:[14]0|[68]d)d{9}$
2、匹配中国移动
^(?:+?86)?14(?:40|8d)d{9}$
3、匹配中国联通
^(?:+?86)?146d{10}$
4、匹配中国电信
^(?:+?86)?1410d{9}$
六、上网卡
1、匹配所有
^(?:+?86)?14[579]d{8}$
2、匹配中国移动
^(?:+?86)?147d{8}$
3、匹配中国联通
^(?:+?86)?145d{8}$
4、匹配中国电信
^(?:+?86)?149d{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 号段已经有支持语音通话的号码卡放出。
十、参考
以上是关于正则表达式——匹配中国大陆手机号码的主要内容,如果未能解决你的问题,请参考以下文章