您好,登錄后才能下訂單哦!
小編給大家分享一下PHP中怎么自定義匹配手機(jī)號(hào)的正則表達(dá)式,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
PHP中我們?cè)趺醋远x匹配手機(jī)號(hào)的正則表達(dá)式?
對(duì)于手機(jī)號(hào)而言,我們都知道在大陸,一般都是以1開(kāi)頭,中間第兩位可能是3 4 5 7 8 ;如果第二位是3,第三位就可能是0-9,如果第二位是4,第三位就可能是7,
如果第二位是5,第三位就可能是0-8,如果第二位是7,第三位是0-8,如果第二位是8,第三位就可能是0-9,后面8位任意組合,當(dāng)我們拿到手機(jī)號(hào)之后,我們就要進(jìn)行正則匹配,輸入($pattre),對(duì)于手機(jī)號(hào)而言,我們需要精確匹配,所以我們需要加入(^$),我們以1開(kāi)頭,以\d{8}結(jié)束,此時(shí)我們需要加括號(hào)需要進(jìn)行修飾,如果說(shuō)我們的第三位是3,那么我們的第三位就可以是0-9,這是我們的第一種情況
緊接著,我們輸入一個(gè)字段,然后進(jìn)行匹配;
代碼演示:
<?php /* 第一位1 第二位3 4 5 7 8 第三位0-9 7 0-8 01235678 0-9 后八位0-9任意 */ $phone =' 12345678901 ' ; $pattern = '/^1(?:3[0-9])\d{8}$/S'; $result = preg_match($pattern, $phone); echo '匹配結(jié)果為:' . $result;
演示結(jié)果如下:
演示結(jié)果顯示我們匹配結(jié)果為0,顯然我們沒(méi)有匹配成功;
如果我把輸入的字段改為133...,我們?cè)俅芜\(yùn)行發(fā)現(xiàn)匹配結(jié)果為1;
$phone ='13345678901';
演示結(jié)果如下:
以此類推,我們只要不超出0-9的范圍,都可以匹配結(jié)果為1;
如果我們第二個(gè)數(shù)是4的話,那我們第三個(gè)數(shù)就只能為7,此時(shí)我們需要把代碼改為47,代碼如下:
$pattern = '/^1(?:3[0-9]|47)\d{8}$/S';
當(dāng)我們把131改為141會(huì)發(fā)現(xiàn)匹配結(jié)果為0(代碼顯示結(jié)果如下),因?yàn)槲覀兟暶鬟^(guò)如果我們第二個(gè)數(shù)是4的話,那我們第三個(gè)數(shù)就只能為7,當(dāng)我們輸出是147我們會(huì)發(fā)現(xiàn)匹配結(jié)果為1;
代碼如下:
$phone ='14745678901'; $pattern = '/^1(?:3[0-9]|47)\d{8}$/S';
演示結(jié)果如下:
當(dāng)?shù)诙皇?,第三位就可能是0-8,代碼如下:
$phone ='15045678901'; $pattern = '/^1(?:3[0-9]|47|5\d)\d{8}$/S';
演示結(jié)果如下:
如果第二位是7,第三位是0-3.5-8;代碼如下:
$phone ='17045678901'; $pattern = '/^1(?:3[0-9]|47|5\d|7[0-35-8])\d{8}$/S';
演示結(jié)果如下:
如果第二位是8,第三位就可能是0-9,代碼如下:
$phone ='17045678901'; $pattern = '/^1(?:3[0-9]|47|5\d|7[0-35-8]|8\d)\d{8}$/S';
演示結(jié)果如下:
以上是“PHP中怎么自定義匹配手機(jī)號(hào)的正則表達(dá)式”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。