首頁 >後端開發 >PHP問題 >php驗證手機號碼方法

php驗證手機號碼方法

PHPz
PHPz原創
2023-03-29 10:13:314299瀏覽

PHP驗證手機號碼方法

手機號碼已經成為了人們日常生活中不可或缺的聯絡方式,而手機號碼的驗證也是非常重要的一環。在網站註冊、簡訊接收等場景下,為了確保手機號碼的合法性和準確性,我們需要使用PHP語言來驗證手機號碼是否合法。在本篇文章中,我們將從以下方面詳細介紹如何使用PHP驗證手機號碼。

  1. 驗證手機號碼的長度

在中國,手機號碼是11位數字,因此我們首先需要驗證輸入的手機號碼是否長度為11位,否則就不是一個合法的手機號碼。在PHP中可以使用strlen()函數來取得字串的長度,判斷輸入的手機號碼是否為11位元。

if (strlen($mobile) != 11) {
    // 不是一个合法的手机号码
}
  1. 驗證手機號碼的前三位

在中國,手機號碼的前三位代表了不同的運營商,因此我們需要輸入的手機號的前三位進行驗證,以確保其合法性。

// 中国移动: 134/135/136/137/138/139/150/151/152/157/158/159/182/183/184/187/188/198
// 中国联通: 130/131/132/155/156/185/186/166
// 中国电信: 133/149/153/173/177/180/181/189/199

$prefix = substr($mobile, 0, 3); // 截取前三位

if (!in_array($prefix, ['134', '135', '136', '137', '138', '139', '150', '151', '152', '157', '158', '159', '182', '183', '184', '187', '188', '198', '130', '131', '132', '155', '156', '185', '186', '166', '133', '149', '153', '173', '177', '180', '181', '189', '199'])) {
    // 不是一个合法的手机号码
}
  1. 驗證手機號碼的格式

在中國,手機號碼有一定的格式要求,常見的格式包括以下幾種:

// 11位数字,如:13912345678
// 带区号的11位数字,如:02012345678、075512345678
// 带“-”的11位数字,如:139-1234-5678、020-1234-5678、0755-1234-5678

因此,我們需要使用正規表示式來驗證是否符合上述格式要求。

// 11位数字
if (!preg_match('/^1[3-9]\d{9}$/', $mobile)) {
    // 不是一个合法的手机号码
}

// 带区号的11位数字
if (!preg_match('/^0\d{2,3}\d{7,8}$/', $mobile)) {
    // 不是一个合法的手机号码
}

// 带“-”的11位数字
if (!preg_match('/^(\d{3}-|\d{4}-)?\d{7,8}$/', $mobile)) {
    // 不是一个合法的手机号码
}
  1. 結合以上驗證方法

最後,我們將以上三種驗證方法結合起來,在PHP中實現手機號碼的驗證。

function validateMobile($mobile) {
    if (strlen($mobile) != 11) {
        return false;
    }

    $prefix = substr($mobile, 0, 3);
    if (!in_array($prefix, ['134', '135', '136', '137', '138', '139', '150', '151', '152', '157', '158', '159', '182', '183', '184', '187', '188', '198', '130', '131', '132', '155', '156', '185', '186', '166', '133', '149', '153', '173', '177', '180', '181', '189', '199'])) {
        return false;
    }

    if (!preg_match('/^1[3-9]\d{9}$/', $mobile) && !preg_match('/^0\d{2,3}\d{7,8}$/', $mobile) && !preg_match('/^(\d{3}-|\d{4}-)?\d{7,8}$/', $mobile)) {
        return false;
    }

    return true;
}

// 示例
if (validateMobile('13912345678')) {
    echo '手机号码合法';
} else {
    echo '手机号码不合法';
}

以上就是在PHP中驗證手機號碼的方法,透過結合以上三種驗證方式,可以有效確保輸入的手機號碼的合法性和準確性。在實際開發中,也可以將方法封裝成一個公共函數,方便在多個場景下進行呼叫。

以上是php驗證手機號碼方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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