自己常用的一個手機號正則表達式,今天突然發現不可以驗證18開頭的手機,下面是我以前的驗證函數,代碼如下:
- function funcMtel($str)//手機號碼正則表達試
- {
- return (preg_match("/(?:13d{1}|15[03689])d{8}$/",$str))?true:false;
- }
- /*
- 測試:18678785887
- 返回為 false
- */
原因分析,查看了發現上面正則只能驗證以13,15開頭的,自然18開頭的是不可以用的,修改后,代碼如下:
- function funcMtel($str)//手機號碼正則表達試
- {
- return (preg_match("/(?:1[3|4|5|8]d{1}|15[03689])d{8}$/",$str))?true:false;
- }
- /*
- 測試:18678785887
- 返回為:true
- */
這樣就成功了.
總結經驗:像手機號這類都會不斷更新號碼段了,我們在寫函數時把它寫成公共函數,這樣就可以解決這個問題了.
新聞熱點
疑難解答