ホームページ >バックエンド開発 >PHPチュートリアル >PHP 正規表現を使用して、入力文字列が正しい携帯電話番号形式であるかどうかを確認する方法

PHP 正規表現を使用して、入力文字列が正しい携帯電話番号形式であるかどうかを確認する方法

PHPz
PHPzオリジナル
2023-06-24 11:49:571980ブラウズ

モバイルインターネットの時代において、携帯電話番号は人々のコミュニケーション手段として欠かせないものとなりましたが、同時に携帯電話番号の形式も多様化しています。入力された携帯電話番号が PHP 正規表現を使用して正しい形式であるかどうかを確認するにはどうすればよいですか?この記事では、携帯電話番号の形式を確認するための PHP 正規表現について詳しく紹介します。

1. 携帯電話番号の形式を特定する

PHP 正規表現を使用して携帯電話番号の形式を検証する方法を紹介する前に、次の形式を特定する必要があります。まず携帯電話番号。中国本土の携帯電話番号は通常 11 桁に分かれており、一般的な形式は次のとおりです:

  1. 携帯電話番号は 13、14、15、16、17、18、19 で始まり、その後に続きます。 9という数字。
  2. チャイナモバイルの携帯電話番号の形式は、139、138、137、136、135、134、159、158、157、150、151、152、147、182、183、184、187、188、178です。 、198など。
  3. チャイナユニコムの携帯電話番号の形式は、130、131、132、155、156、185、186、145、176、166 などで始まります。
  4. China Telecom の携帯電話番号の形式は、133、153、180、181、189、177、173 などで始まります。

2. 正規表現を使用して携帯電話番号の形式を確認する

PHP 正規表現を使用して携帯電話番号の形式を確認するには、preg_match() 関数を使用する必要があります。この関数は 2 つのパラメータを受け入れます。最初のパラメータは正規表現で、2 番目のパラメータは一致する文字列です。

次に、一般的に使用される正規表現をいくつか紹介します:

  1. チャイナ モバイル、チャイナ ユニコム、テレコムに関係なく、1 で始まる 11 桁の数字をすべて受け入れます: /^1[0 -9 ]{10}$/。

説明: ^ は始まりを意味し、$ は終わりを意味し、[0-9] は 0 ~ 9 の任意の数値を意味し、{10} は数値が 10 回繰り返されることを意味します。合計11桁。

例:

$pattern = '/^1[0-9]{10}$/';
$mobile_number = '13888888888';
if(preg_match($pattern, $mobile_number)){
    echo '手机号码格式正确!';
}else{
    echo '手机号码格式不正确!';
}

出力:

手机号码格式正确!
  1. すべての携帯電話番号を受け入れる:/^(13[4-9]|14[7-8]| 15[0-2,7-9]|166|17[2-8]|18[2-4,7-8]|19[8,9])d{8}$/。

説明: | は OR 関係を表し、[] は文字の 1 つを選択することを表し、- は範囲を表し、d は任意の数値を表し、{8} は 8 回繰り返される数値を表します。合計11桁。

例:

$pattern = '/^(13[4-9]|14[7-8]|15[0-2,7-9]|166|17[2-8]|18[2-4,7-8]|19[8,9])d{8}$/';
$mobile_number = '13988888888';
if(preg_match($pattern, $mobile_number)){
    echo '手机号码格式正确!';
}else{
    echo '手机号码格式不正确!';
}

出力:

手机号码格式不正确!
  1. チャイナユニコムのすべての携帯電話番号を受け入れる:/^(13[0-2]|15[5-6] ]| 17[56]|18[5-6]|145|166)d{8}$/。

説明: 上記と同じ。

例:

$pattern = '/^(13[0-2]|15[5-6]|17[56]|18[5-6]|145|166)d{8}$/';
$mobile_number = '13188888888';
if(preg_match($pattern, $mobile_number)){
    echo '手机号码格式正确!';
}else{
    echo '手机号码格式不正确!';
}

出力:

手机号码格式正确!
  1. すべての通信用携帯電話番号を受け入れる:/^(133|153|170[0-2]|173| 177 |180|181|189|199)d{8}$/。

説明: 上記と同じ。

例:

$pattern = '/^(133|153|170[0-2]|173|177|180|181|189|199)d{8}$/';
$mobile_number = '17012345678';
if(preg_match($pattern, $mobile_number)){
    echo '手机号码格式正确!';
}else{
    echo '手机号码格式不正确!';
}

出力:

手机号码格式正确!

3. プログラムに携帯電話番号形式の検証を実装します

以下は Verify 用の完全な PHP プログラムです。入力された携帯電話番号が中国本土の携帯電話番号形式要件を満たしているかどうか:

function validate_mobile_number($mobile_number){
    $reg_exs = [
            '/^1[0-9]{10}$/',//接受所有以1开头的11位数字,不区分移动、联通、电信
            '/^(13[4-9]|14[7-8]|15[0-2,7-9]|166|17[2-8]|18[2-4,7-8]|19[8,9])d{8}$/',//接受所有移动手机号码
            '/^(13[0-2]|15[5-6]|17[56]|18[5-6]|145|166)d{8}$/',//接受所有联通手机号码
            '/^(133|153|170[0-2]|173|177|180|181|189|199)d{8}$/'//接受所有电信手机号码
            ];
    foreach($reg_exs as $reg_ex){
        if(preg_match($reg_ex, $mobile_number)){
            return true;
        }
    }
    return false;
}

$mobile_number = '13312345678';

if(validate_mobile_number($mobile_number)){
    echo '手机号码格式正确!';
}else{
    echo '手机号码格式不正确!';
}

出力:

手机号码格式正确!

IV. 概要

この記事では、PHP の通常の使用方法を紹介します。入力を検証する式 文字列が正しい携帯電話番号形式であるかどうかを確認するメソッド。実際の開発では、必要に応じて適切な正規表現を選択し、プログラムに埋め込むことで携帯電話番号の形式を検証できます。この記事が、皆さんが PHP 正規表現の使い方をよりよくマスターするのに役立つことを願っています。

以上がPHP 正規表現を使用して、入力文字列が正しい携帯電話番号形式であるかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。