首頁  >  文章  >  後端開發  >  PHP中我們如何自訂符合手機號碼的正規表示式? (附代碼)

PHP中我們如何自訂符合手機號碼的正規表示式? (附代碼)

慕斯
慕斯原創
2021-06-10 11:48:033186瀏覽

上篇文章為大家介紹了《一起聊聊關於PHP中正規表示式的函數?是如何使用的(附代碼)》,本文繼續介紹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 =&#39; 12345678901 &#39; ;
$pattern = &#39;/^1(?:3[0-9])\d{8}$/S&#39;;
$result = preg_match($pattern, $phone);
echo  &#39;匹配结果为:&#39; . $result;

示範結果如下:

PHP中我們如何自訂符合手機號碼的正規表示式? (附代碼)

示範結果顯示我們符合結果為0,顯然我們沒有符合成功;

如果我把輸入的欄位改為133...,我們又執行發現符合結果為1;

$phone =&#39;13345678901&#39;;

示範結果如下:

PHP中我們如何自訂符合手機號碼的正規表示式? (附代碼)

##以此類推,我們只要不超出0-9的範圍,都可以匹配結果為1;

如果我們第二個數是4的話,那我們第三個數就只能為7,此時我們需要把程式碼改為47,程式碼如下:

$pattern = &#39;/^1(?:3[0-9]|47)\d{8}$/S&#39;;

當我們把131改為141會發現符合結果為0(程式碼顯示結果如下),因為我們宣告過如果我們第二個數是4的話,那我們第三個數字就只能為7,當我們輸出是147我們會發現匹配結果為1;

PHP中我們如何自訂符合手機號碼的正規表示式? (附代碼)

PHP中我們如何自訂符合手機號碼的正規表示式? (附代碼) ##程式碼如下:

$phone ='14745678901';
$pattern = &#39;/^1(?:3[0-9]|47)\d{8}$/S&#39;;

示範結果如下:

PHP中我們如何自訂符合手機號碼的正規表示式? (附代碼)#當第二位是5,第三位就可能是0-8,程式碼如下:

$phone =&#39;15045678901&#39;;
$pattern = &#39;/^1(?:3[0-9]|47|5\d)\d{8}$/S&#39;;

示範結果如下:

PHP中我們如何自訂符合手機號碼的正規表示式? (附代碼)如果第二位是7,則第三位是0-3.5-8;程式碼如下:

$phone =&#39;17045678901&#39;;
$pattern = &#39;/^1(?:3[0-9]|47|5\d|7[0-35-8])\d{8}$/S&#39;;

示範結果如下:

PHP中我們如何自訂符合手機號碼的正規表示式? (附代碼)如果第二位是8,第三位就可能是0-9,程式碼如下:

$phone =&#39;17045678901&#39;;
$pattern = &#39;/^1(?:3[0-9]|47|5\d|7[0-35-8]|8\d)\d{8}$/S&#39;;

示範結果如下:

PHP中我們如何自訂符合手機號碼的正規表示式? (附代碼)推薦學習:《

PHP影片教學

以上是PHP中我們如何自訂符合手機號碼的正規表示式? (附代碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn