Python正則校驗手機、電話號碼有效性

Python正則校驗手機、電話號碼有效性

目前移動、聯通、電信三大運營商的手機號段如下:

1、移動號段

134,135,136,137, 138,139,147,150,151,152,157,158,159,178,182,183,184,187,188

2、聯通號段

130,131,132,155,156,185,186,145,176。

3、電信號段

133,153,177,180,181,189。

4、工信部:新一批手機號段98、92、19、16要來了!(摘自某新聞內容)

從以上我們可以看到手機號碼第一位是【1】開頭,第二位則則有【3,4,5,6,7,8,9】,第三位則是【0-9】,第三位之後則是數字【0-9】。從而我們可以得出一個符合當前的手機號碼驗證正則表達式。

r"^[1][3-9][0-9]{9}$"

特殊格式的手機號碼錶達式

通過實際數據的分析,發現手機號碼格式不僅為11位數字,其中含包含【+86】、【(86)】、【+0086】、【86空格】等情況,所以正則需要補充,如下。

r"(^\+86|86|\[86\]|\(86\)|\+0086|0086|\[0086\]|\(0086\))(\s[1]|[1])[345678][0-9]{9}$"

固話的正則表達式

國內固定電話和傳真的格式基本都是帶有0的區號+連接符"-"+電話號碼,區號有3位、4位,電話號碼有7位和8位的;其它格式的有前面帶4、8等其他數字,或者不帶連接符的。

區號:前面一個4、8、0,後面跟2-3位數字;

電話號碼:7-8位數字;

r"^[4,8,0][0-9]{2,3}(-[0-9]{7,8}$|(\s)[0-9]{7,8}$|[0-9]{7,8}$)"

嘔心瀝血 調試的源碼

Python正則校驗手機、電話號碼有效性

手機號、電話正則匹配函數

Python正則校驗手機、電話號碼有效性


分享到:


相關文章: