最近公司项目需要对手机号进行校验,于是使用了“ /^1[34578]\d{9}$/ ”这个正则进行校验,后来测试提出当输入199开头的手机号时校验不通过,于是发现原来各大运营商新增加了一些新的手机号段。
以下为截止2018年1月各大运营商已知手机号码号段:
更新时间2018年1月11日
移动号段:
134 135 136 137 138 139 147 148 150 151 152 157 158 159 172 178 182 183 184 187 188 198
联通号段:
130 131 132 145 146 155 156 166 171 175 176 185 186
电信号段:
133 149 153 173 174 177 180 181 189 199
虚拟运营商:
170
校验规则这样写即可:
var pattern = /(0|86|17951)?(13[0-9]|15[4]|17[678]|18[0-9]|14[57]|19[0-9]|16[0-9])[0-9]{8}$/;
if (pattern.test(value)) {
return callback()
}
return callback(new Error(‘请输入正确的手机号’))
由于电信199、移动198、联通166号段刚刚发布,所以很多网站和APP都没有更新验证规则或者短信平台未更新,以致于前端就给拦截了,希望早点更新!