1. 程式人生 > >手機號正則表示式的使用

手機號正則表示式的使用

最近公司專案,需要用到正則表示式JavaScript 驗證手機號碼格式校驗驗證規則。由於手機號段的不斷更新,以前的正則表示式已經無法滿足當前需求。

以前我們偷懶只驗證位數,或者如下只驗證第二位:

/^1[34578]\d{9}$/

可是帶來了問題,它無法驗證一些不存在的號段。那麼怎麼辦?因此我們要根據現在各大運營商已知號段進行校驗。

以下為截止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

手機號碼格式號段新增加了電信199號段、移動198號段、聯通166號段

如上,我們得到了正則表示式:

/^0?(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[8-9])[0-9]{8}$/

這樣就可以對手機號碼格式進行相對嚴謹進行校驗了。 注意這裡初始值為0,不校驗可去掉‘0?’。

/^(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[8-9])[0-9]{8}$/

由於電信199、移動198、聯通166號段剛剛釋出,所以很多網站和APP都沒有更新驗證規則或者簡訊平臺未更新,以致於前端就給攔截了,希望早點更新!

有童鞋問我javascript、jquery中正則表示式咋寫?

/*手機格式驗證*/
$("#mobile").blur(function(){
	var re =/^(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[8-9])[0-9]{8}$/;
	var mobile=$("#mobile").val();
	if(mobile.match(re)==null){
		alert("手機號格式不正確!");
		$("#mobile").val("");
	}
});

這樣phone_number就是取到的手機號碼,即可!