PHP で正規表現を使用して ID 番号の形式を確認する方法

王林
リリース: 2023-06-23 12:38:01
オリジナル
1362 人が閲覧しました

PHP アプリケーションを作成する場合、ユーザーが入力したデータが標準の ID カード形式に準拠していることを確認するために、入力 ID 番号の形式検証を実行する必要がある場合があります。 PHPでは正規表現を使用してIDカード番号の形式を検証することができますが、この記事では正規表現を使用してこの機能を実現する方法を紹介します。

まず、ID 番号の形式を理解する必要があります。中国の法律によれば、ID 番号は合計 18 桁で、最初の 17 桁は数字、最後の桁は数字または文字 X で、ID 番号が正しく入力されているかどうかを確認するために使用されます。 ID 番号の形式は次のとおりです:

  1. 最初の 2 桁は都道府県の行政区画コード、
  2. 次の 2 桁は都道府県レベルの行政区画コード、
  3. 次の 2 桁は郡レベルの行政区画コードです。
  4. の後には誕生年の 4 桁の数字が続き、
  5. の後には 2 桁の数字が続きます。月、
  6. 、最後の 2 桁は誕生年、および 3 桁のシリアル番号です。

上記の規定に従って、ID 番号の形式に一致する正規表現を作成できます。正規表現の構文は次のとおりです:

/^d{2}(0[1-9]|[1-9]d)d{2}d{4}d{2}d{2}(d{3}|d{4}[Xx])$/
ログイン後にコピー

ここで:

  1. ^ は、一致した入力文字列の開始位置を表します。
  2. # d
  3. は任意の数値と一致することを意味し、[0-9] と同等;
  4. {n}
  5. は n 回一致することを意味します。 # #() は、後続の操作を容易にするためのグループ化を意味します。
  6. | は、複数のオプションを一致させるために使用される or を意味します。
  7. $ は入力文字列の終了位置との一致を示し、
  8. [] はセット内の任意の文字との一致を示します。
  9. 上記の正規表現に従って、これを PHP 組み込み関数 preg_match()
  10. にパラメータとして渡して、ID 番号の形式を確認できます。
preg_match()

関数の構文は次のとおりです。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>preg_match(string $pattern, string $subject, array &amp;$matches = null, int $flags = 0, int $offset = 0): int|false</pre><div class="contentsignin">ログイン後にコピー</div></div>この関数は、正規表現と一致する文字列をパラメータとして受け取ります。一致した場合は 1 を返し、そうでない場合は 0 を返します。関数内でエラーが発生した場合は false が返されます。 次に、ID カード番号の形式を検証する PHP 関数の例を示します。

function validate_id_card(string $id_card): bool
{
    $pattern = '/^d{2}(0[1-9]|[1-9]d)d{2}d{4}d{2}d{2}(d{3}|d{4}[Xx])$/';
    return preg_match($pattern, $id_card) === 1;
}
ログイン後にコピー

この関数は、文字列パラメータ

id_card

を受け入れます。これは、ID カード番号の形式を検証するために使用されます。 ID カード番号の形式。

$pattern

変数は、以前に定義した正規表現を保存するために関数内で使用され、パラメータとして preg_match() 関数に渡されます。関数が正常に一致した場合は true を返し、そうでない場合は false を返します。 上記は、PHP で正規表現を使用して ID 番号の形式を確認する方法です。正規表現を使用すると、ID カード番号形式の検証をより効率的かつ便利に完了できるため、複雑な検証ロジックを手動で記述する必要がなくなります。

以上がPHP で正規表現を使用して ID 番号の形式を確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート