手機號驗證最新正規表示式

2020-10-28 15:01:00

一般表單頁面都需要填寫手機號,校驗使用者輸入的手機號碼是否正確,就要用到正規表示式,用正規表示式來匹配手機號段,如在運營商號段內,則號碼正確。因此,需要知道運營商最新的號段,如下所示:

各大運營商手機號碼段(新)

中國電訊號段

133、153、173、177、180、181、189、190、191、193、199

中國聯通號段

130、131、132、145、155、156、166、167、171、175、176、185、186、196

中國移動號段

134(0-8)、135、136、137、138、139、1440、147、148、150、151、152、157、158、159、172、178、182、183、184、187、188、195、197、198

中國廣電號段

192

其他號段

14號段部分為上網路卡專屬號段:中國聯通145,中國移動147,中國電信149

虛擬運營商:

電信:1700、1701、1702、162
移動:1703、1705、1706、165
聯通:1704、1707、1708、1709、171、167
衛星通訊:1349、174
物聯網:140、141、144、146、148

通過以上號段可以看出,手機號碼起始1,第二位是3456789中的任意一個,第三位有的是0-9全段,有的只是部分,如下:

13和18開頭的手機號是全段

13開頭的手機號是全段:13 [0123456789] 比如130,131,132…139
18開頭的手機號是全段:18[0123456789] 比如180,181,182…189

15和19開頭的手機號後面除4外都有,無154和194

15 [012356789] 比如150,151,152,153,155…159
19 [012356789] 比如190,191,192,193,195…159

17開頭的手機號後面除9外都有

17 [01235678] 比如170,171,172,173…178

14開頭的手機號除2,3外都有,無142和143

14[01456879] 比如140,141,144,145…149

16開頭的手機號後面只有2567

16[2567] 比如:162,165,166,167

瞭解了運營商的最新號段,下面就寫出手機號驗證的最新正規表示式

/^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\d{8}$/

在javascript中的範例:

<script>
	var reg_user = /^[\u4e00-\u9fa5]{2,4}$/;    //2-4箇中文字元正則
	var reg_tel = /^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\d{8}$/;    //11位手機號碼正則
	function checkSubmit() {
		if (document.form.user.value =="") {
			alert("姓名不能為空!");
			document.form.user.focus();
			return false;
		} else if (!reg_user.test(document.form.user.value)) {
			alert("姓名只能為2-4中文!");
			document.form.user.focus();
			document.form.user.select();
			return false;
		}
		if (document.form.tel.value =="") {
			alert("請填寫您的手機號碼!");
			document.form.tel.focus();
			document.form.tel.select();
			return false;
		} else if (!reg_tel.test(document.form.tel.value)) {
			alert("請正確填寫您的手機號碼!");
			document.form.tel.focus();
			document.form.tel.select();
			return false;
		}
	}
</script>

因為手機號都是以1開始的,所以也可以這樣寫:

/^1(3[0-9]|4[01456879]|5[0-3,5-9]|6[2567]|7[0-8]|8[0-9]|9[0-3,5-9])\d{8}$/

這是把所有運營商號段寫在一起的,包括虛擬運營商、物聯網等,大家也可以根據專案需求來寫。


表單欄位驗證常用正規表示式

1、姓名

/^[\u4e00-\u9fa5]{2,4}$/    //2-4箇中文字元正則

2、手機號碼

/^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\d{8}$/

3、座機號碼

/^(0\d{2,3})-?(\d{7,8})$/

4、電子郵箱

/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/

5、身份證號碼

/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/

6、QQ號碼

/^[1-9][0-9]\d{4,9}$/

7、郵政編碼

/^[1-9]\d{5}$/

8、註冊賬號

/^[a-zA-Z][a-zA-Z0-9_]{4,15}$/