PHP アプリケーションを作成する場合、ユーザーが入力したデータが標準の ID カード形式に準拠していることを確認するために、入力 ID 番号の形式検証を実行する必要がある場合があります。 PHPでは正規表現を使用してIDカード番号の形式を検証することができますが、この記事では正規表現を使用してこの機能を実現する方法を紹介します。
まず、ID 番号の形式を理解する必要があります。中国の法律によれば、ID 番号は合計 18 桁で、最初の 17 桁は数字、最後の桁は数字または文字 X で、ID 番号が正しく入力されているかどうかを確認するために使用されます。 ID 番号の形式は次のとおりです:
上記の規定に従って、ID 番号の形式に一致する正規表現を作成できます。正規表現の構文は次のとおりです:
/^d{2}(0[1-9]|[1-9]d)d{2}d{4}d{2}d{2}(d{3}|d{4}[Xx])$/
ここで:
^
は、一致した入力文字列の開始位置を表します。 [0-9]
と同等;
# #()
は、後続の操作を容易にするためのグループ化を意味します。|
は、複数のオプションを一致させるために使用される or を意味します。$
は入力文字列の終了位置との一致を示し、[]
はセット内の任意の文字との一致を示します。 上記の正規表現に従って、これを PHP 組み込み関数
preg_match() 関数の構文は次のとおりです。 <pre class='brush:php;toolbar:false;'>preg_match(string $pattern, string $subject, array &$matches = null, int $flags = 0, int $offset = 0): int|false</pre>
この関数は、正規表現と一致する文字列をパラメータとして受け取ります。一致した場合は 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 サイトの他の関連記事を参照してください。