ID カード番号は、我が国の居住者を識別するための重要な記号であり、さまざまな場面で本人確認に使用されます。アプリケーションでは、ID 番号の有効性と正確性を保証するために、正規表現による検証が必要です。この記事では、PHP 正規表現を使用して ID 番号の有効性と性別を検証する方法を紹介します。
1. ID 番号の構成と規則
ID 番号は、18 桁または 17 桁と 1 つのチェックコードで構成されます。このうち最初の17桁はIDカード所有者の情報を表し、最後の1桁はIDカード番号が正しいことを確認するための認証コードを表します。
ID 番号の規則は次のとおりです。
2. 正規表現を使用して ID 番号を確認する
正規表現を使用すると、ID 番号の正当性を簡単に確認できます。以下に簡単な正規表現の例を示します。
$pattern = '/^[1-9]d{5}(19|20)d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])d{3}[0-9Xx]$/'; $code = '110101199001011234'; if (preg_match($pattern, $code)) { echo '身份证号码有效'; } else { echo '身份证号码无效'; }
この正規表現の規則は ID 番号の規則と一致しており、いくつかの修飾子と文字クラスが使用されます。このうち、^ は文字列の先頭を表し、$ は文字列の末尾を表します。 [1-9] は最初の桁を 0 にすることはできないことを意味し、d{5} は次の 5 桁が数字であることを意味します。 (19|20) は、ID カード所有者の誕生年が 19 または 20 で始まる数字であることを示します。 (0[1-9]|1[012])は誕生月の番号01~12を表します。 (0[1-9]|12|3[01])は生年月日が01~31の数字を表します。 d{3} は最後の 3 桁が任意の数値であることを意味し、[0-9Xx] は最後の桁が数字または文字 X であることを意味します。この正規表現を使用すると、ID 番号の正当性を簡単に検証できます。
3. 正規表現を使用してID番号の性別を確認する
ID番号の17桁目はIDカード所有者の性別を表し、奇数は男性、偶数はIDカード所有者の性別を表します。女性。正規表現を使用すると、ID 番号の 17 桁目を簡単に抽出し、性別を判断できます。
次は簡単な例です:
$pattern = '/^[1-9]d{5}(19|20)d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])(d{3})[0-9Xx]$/'; $code = '110101199001011234'; if (preg_match($pattern, $code, $matches)) { $sex = $matches[6] % 2 == 0 ? '女' : '男'; echo '性别为' . $sex; } else { echo '身份证号码无效'; }
この正規表現は、追加のキャプチャ グループ (d{3}) があることを除いて、前の正規表現と同じです。 ID 番号の最初の桁をキャプチャします (17 ビット)。 $matches 変数を使用してキャプチャされた情報を取得し、17 番目の位置のパリティに基づいて性別を決定します。
要約すると、簡単な正規表現を使用することで、ID 番号の正当性を簡単に検証し、性別情報を抽出することができます。実際のアプリケーションでは、より厳格で詳細な検証ルールが必要な場合は、実際のニーズに応じて調整および改善できます。
以上がID番号の有効性と性別を検証するためのPHP正規表現方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。