上篇文章為大家介紹了《一起聊聊關於PHP中正規表示式的函數?是如何使用的(附代碼)》,本文繼續介紹PHP中我們如何自訂與手機號碼相符的正規表示式?
PHP中我們如何自訂符合手機號碼的正規表示式?
對手機號碼而言,我們都知道在大陸,一般都是以1開頭,中間第兩位可能是3 4 5 7 8 ;如果第二位是3,第三位就可能是0-9,如果第二位是4,第三位就可能是7,
如果第二位是5,第三位就可能是0-8,如果第二位是7,第三位是0-8,如果第二位是8,第三位就可能是0-9,後面8位任意組合,當我們拿到手機號之後,我們就要進行正則匹配,輸入( $pattre),對於手機號碼而言,我們需要精確匹配,所以我們需要加入(^$),我們以1開頭,以\d{8}結束,此時我們需要加括號需要進行修飾,如果說我們的第三位是3,那麼我們的第三位就可以是0-9,這是我們的第一種情況
#緊接著,我們輸入一個字段,然後進行匹配;
程式碼示範:
<?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 '匹配结果为:' . $result;
示範結果如下:
示範結果顯示我們符合結果為0,顯然我們沒有符合成功;
如果我把輸入的欄位改為133...,我們又執行發現符合結果為1;
$phone ='13345678901';
示範結果如下:
##以此類推,我們只要不超出0-9的範圍,都可以匹配結果為1;如果我們第二個數是4的話,那我們第三個數就只能為7,此時我們需要把程式碼改為47,程式碼如下:$pattern = '/^1(?:3[0-9]|47)\d{8}$/S';當我們把131改為141會發現符合結果為0(程式碼顯示結果如下),因為我們宣告過如果我們第二個數是4的話,那我們第三個數字就只能為7,當我們輸出是147我們會發現匹配結果為1;
##程式碼如下:
$phone ='14745678901'; $pattern = '/^1(?:3[0-9]|47)\d{8}$/S';
示範結果如下:
#當第二位是5,第三位就可能是0-8,程式碼如下:
$phone ='15045678901'; $pattern = '/^1(?:3[0-9]|47|5\d)\d{8}$/S';
示範結果如下:
如果第二位是7,則第三位是0-3.5-8;程式碼如下:
$phone ='17045678901'; $pattern = '/^1(?:3[0-9]|47|5\d|7[0-35-8])\d{8}$/S';
示範結果如下:
如果第二位是8,第三位就可能是0-9,程式碼如下:
$phone ='17045678901'; $pattern = '/^1(?:3[0-9]|47|5\d|7[0-35-8]|8\d)\d{8}$/S';
示範結果如下:
推薦學習:《
PHP影片教學以上是PHP中我們如何自訂符合手機號碼的正規表示式? (附代碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!