手機號段正則表示式 (2019-01 最新)
阿新 • • 發佈:2019-01-03
ி 前言
- 溫馨提示:
首先,有一點注意的是,手機號這種東西會不斷更新(時間跨度比較長,具體規則估計得去工信部檢視)
所以,個人認為網上流傳的大多數介紹其正則表示式
的文章,是無法保證規範與時效性的
總結來說,如果想要保障嚴謹的規範性,就無法保證時效性, 建議花個十幾分鍾看一下 正則表示式 - 語法 ,自行制定需要的結果,同時儘量注意及時更新過時的程式碼
…
文章最後更新時間
: 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 = "手機號碼規範";
}