版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/details/85601655
ி 前言
- 温馨提示:
首先,有一点注意的是,手机号这种东西会不断更新(时间跨度比较长,具体规则估计得去工信部查看)
所以,个人认为网上流传的大多数介绍其正则表达式
的文章,是无法保证规范与时效性的
总结来说,如果想要保障严谨的规范性,就无法保证时效性, 建议花个十几分钟看一下 正则表达式 - 语法 ,自行制定需要的结果,同时尽量注意及时更新过时的代码
…
文章最后更新时间
: 2019 - 01 - 02
- 国内移动、联通、电信 三大运营商所管理的手机号段(最新)
— --- — | 中国移动 | 中国联通 | 中国电信 | 虚拟运营商 |
---|---|---|---|---|
已有号段 | 134 135 136 137 138 139 147(上网卡) 150 151 152 157 158 159 165 172 178(4G) 182 183 184 187 188 |
130 131 132 145(上网卡) 155 156 171 175 176(4G) 185 186 |
133 149 153 173 174 177(4G) 180 181 189 191 |
170 171 |
新增号段 (2017-08-08 工信部) |
1440(物联网) 148(物联网) 198 |
146(物联网) 166 |
1410(物联网) 199 |
✎ 正则表达式
- 如果根据上文的手机号段,进行严谨的规则匹配,那么得到的结果为:
/^[1](([3][0-9])|([4][5-9])|([5][0-3,5-9])|([6][5,6])|([7][0-8])|([8][0-9])|([9][1,8,9]))[0-9]{8}$/
- 如果觉得太过严谨,可以考虑使用
/^[1]([3-9])[0-9]{9}$/
- 举例,在
js
代码中进行应用的一种写法:
var telStr = /^[1](([3][0-9])|([4][5-9])|([5][0-3,5-9])|([6][5,6])|([7][0-8])|([8][0-9])|([9][1,8,9]))[0-9]{8}$/;
var inputStr = "18810998988";
if (!(telStr.test(inputStr))) {
flag = '手机号码输入不规范';
}else{
msg = "手机号码规范";
}