現在我們來總結一下關于php中固定電話號碼和手機號碼正則表達式驗證,本實現可以驗證目前所有中國座機與移動電話號碼,有需要的朋友可參考一下.
086-區號-號碼-分機:
^086-[1-9][0-9]{1,4}-[1-9][0-9]{4,7}-[0-9]{3,4}$
2G的手機號差不多都是13開頭,代碼如下:
- $mobilephone=trim($_POST["smMobilePhone"]);
- //手機號碼的正則驗證
- if(preg_match("/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/",$mobilephone)){
- //驗證通過
- }else{
- //手機號碼格式不對
- }
3G的號以150、151、158、159開頭,還有就是189開頭,所以代碼如下:
- $mobilephone="18000000000";
- if(preg_match("/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/",$mobilephone)){
- echo '驗證通過';
- }else{
- echo '手機號碼格式不對';
- }
注意:
先要整清楚現在已經開放了多少個號碼段,國家號碼段分配如下:
移動:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
聯通:130、131、132、152、155、156、185、186
電信:133、153、180、189、(1349衛通)
加上js處理,代碼如下:
- <script type="text/javascript">
- var patter = /^1(5[0-35-9]|8[06789]|3[0-9]|47)d{8}$/;
- /**
- * 匹配固定電話 (區號-)+號碼 區號可以不寫,-也可以不寫 匹配大部分固話,但不包括4位以上的區號地區的電話
- */
- var patter = /^(0(10|21|22|23|[1-9][0-9]{2})(-|))?[0-9]{7,8}$/
- </script>
/^13d{9}$/gi手機號正則表達式,代碼如下:
- public static bool IsValidMobileNo(string MobileNo)
- {
- const string regPattern = @"^(130|131|132|133|134|135|136|137|138|139)d{8}$";
- return Regex.IsMatch(MobileNo, regPattern);
- }
正則表達式--驗證手機號碼:13[0-9]{9}
實現手機號前帶86或是+86的情況:^((+86)|(86))?(13)d{9}$
電話號碼與手機號碼同時驗證:(^(d{3,4}-)?d{7,8})$|(13[0-9]{9})
提取信息中的中國手機號碼:(86)*0*13d{9}
提取信息中的中國固定電話號碼:((d{3,4})|d{3,4}-|s)?d{8}
提取信息中的中國電話號碼(包括移動和固定電話):((d{3,4})|d{3,4}-|s)?d
新聞熱點
疑難解答