PHP 正则匹配手机号(国内)
PHP提供了多种内置的正则匹配函数,如php_filter() 、php_grep()、php_match_all()等,最重要的是我们要根据要判定的数据要求,来精准判定,以此来达到最后的目的。
本次,我们判定国内的手机号格式,要求:不匹配卫星电话的号段。
电信网编号总览
| 序号 | 号码 | 长度 | 备注 | 正则规则 |
| 1 |
13x |
11 |
公众移动通信网网号 |
^13(4[0-8]\d{7}|[0-3|5-9]\d[0-9]\d{8})$ |
| 2 |
1349 |
11 |
公众移动通信网网号,卫星移动通信业务专用号段 |
^1349\d{7}$ |
| 3 |
140XX |
13 |
中国联通物联网网号 |
^140\d{10}$ |
| 4 |
141XX |
13 |
中国电信物联网网号 |
^141\d{10}$ |
| 5 |
142XX~143XX |
13 |
物联网网号 |
^142\d{10}$ |
| 6 |
144XX |
13 |
中国移动物联网网号 |
^144\d{10}$ |
| 7 |
145~149 |
11 |
公众移动通信网网号 |
^14[5-9]\d{8}$ |
| 8 |
15X |
11 |
公众移动通信网网号 |
^15\d{9}$ |
| 9 |
161~162 |
11 |
公众移动通信网网号 |
^16[1-2]\d{8}$ |
| 10 |
164~167 |
11 |
公众移动通信网网号 |
^16[4-7]\d{8}$ |
| 11 |
170~178 |
11 |
公众移动通信网网号 |
^17[0-8]\d{8}$ |
| 12 |
174 |
11 |
公众移动通信网网号,卫星移动通信业务专用号段 |
^174\d{8}$ |
| 13 |
18X |
11 |
公众移动通信网网号 |
^18\d{9}$ |
| 14 |
19X |
11 |
公众移动通信网网号 |
^19\d{9}$ |
标记为公众移动通信网网号的为运营商可以使用的、用于个人通讯业务的号段。 开放的号段并非全部都已使用,只是指运营商可以在其内开展、经营业务。
移动
| 序号 | 运营商 | 号码 | 长度 | 备注 | 正则规则 |
| 1 |
中国移动 |
134~139 |
11 |
公众移动通信网网号,1349除外 |
^13(4[0-8]\d{7}|[5-9]\d{8})$ |
| 2 |
中国移动 |
147 |
11 |
公众移动通信网网号,TD数据卡专用 |
^147\d{8}$ |
| 3 |
中国移动 |
150~152 |
11 |
公众移动通信网网号 |
^15[0-2]\d{8}$ |
| 4 |
中国移动 |
157~159 |
11 |
公众移动通信网网号 |
^15[7-9]\d{8}$ |
| 5 |
中国移动 |
172 |
11 |
公众移动通信网网号,2014新增 |
^172\d{8}$ |
| 5 |
中国移动 |
178 |
11 |
公众移动通信网网号,2014新增 |
^178\d{8}$ |
| 6 |
中国移动 |
182~184 |
11 |
公众移动通信网网号 |
^18[2-4]\d{8}$ |
| 7 |
中国移动 |
187~188 |
11 |
公众移动通信网网号,188TD专用 |
^18[7-8]\d{8}$ |
| 8 |
中国移动 |
198 |
11 |
公众移动通信网网号 |
^198\d{8}$ |
联通
| 序号 | 运营商 | 号码 | 长度 | 备注 | 正则规则 |
| 1 |
中国联通 |
130~132 |
11 |
公众移动通信网网号 |
^13[0-2]\d{8}$ |
| 2 |
中国联通 |
145~146 |
11 |
公众移动通信网网号,145TD数据卡专用 |
^14[5-6]\d{8}$ |
| 3 |
中国联通 |
155~156 |
11 |
公众移动通信网网号 |
^15[5-6]\d{8}$ |
| 4 |
中国联通 |
166 |
11 |
公众移动通信网网号 |
^166\d{8}$ |
| 5 |
中国联通 |
175~176 |
11 |
公众移动通信网网号 |
^17[5-6]\d{8}$ |
| 6 |
中国联通 |
185~186 |
11 |
公众移动通信网网号 |
^18[5-6]\d{8}$ |
电信
| 序号 | 运营商 | 号码 | 长度 | 备注 | 正则规则 |
| 1 |
中国电信 |
133 |
11 |
公众移动通信网网号 |
^133\d{8}$ |
| 2 |
中国电信 |
149 |
11 |
公众移动通信网网号 |
^149\d{8}$ |
| 3 |
中国电信 |
153 |
11 |
公众移动通信网网号 |
^153\d{8}$ |
| 4 |
中国电信 |
173 |
11 |
公众移动通信网网号 |
^173\d{8}$ |
| 5 |
中国电信 |
177 |
11 |
公众移动通信网网号 |
^177\d{8}$ |
| 6 |
中国电信 |
180 |
11 |
公众移动通信网网号 |
^180\d{8}$ |
| 7 |
中国电信 |
181 |
11 |
公众移动通信网网号 |
^181\d{8}$ |
| 8 |
中国电信 |
189 |
11 |
公众移动通信网网号 |
^189\d{8}$ |
| 9 |
中国电信 |
191 |
11 |
公众移动通信网网号 |
^191\d{8}$ |
| 10 |
中国电信 |
199 |
11 |
公众移动通信网网号 |
^199\d{8}$ |
综合匹配正则
^1((34[0-8]\d{7})|((3[0-3|5-9])|(4[5-7|9])|(5[0-3|5-9])|(66)|(7[2-3|5-8])|(8[0-9])|(9[1|8|9]))\d{8})$
上述正则有能力优化的同学请留下你的作业o(*^@^*)o
示例
提示
- 严格意义上来讲,类似这种
/^1[34578]\d{9}$/写法是不够严谨的,可能造成后续短信验证号码为空的情况,从而丧失获取手机号的作用;
- 根据需求需要对一些特别号段,比如上述号段在匹配时,我们不允许卫星电话号段注册;
- 需要关注工信部相关的新闻,及时更新匹配规则。
勘误
欢迎各位发现数据存在问题的同学及时评论勘误!
数据来源:
- 电信网编号计划(2017年版)
- 百度知道-184号段是中国移动的吗?
- 百度知道-目前中国联通的号段有哪些
- 百度知道-中国电信号码段都有哪些
转自:https://blog.csdn.net/Chinakeep/article/details/106093218?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf
来源:https://www.cnblogs.com/nxmxl/p/13686711.html |