ID 番号は、個人の生年月日、性別、出身地など多くの情報が保存される非常に重要な機密情報です。 PHP で正規表現を使用して ID 番号の生年月日を照合することが特に重要になります。この記事では、PHP で正規表現を使って ID カード番号の生年月日を照合する方法を次の 3 つの側面から紹介します。
1. ID 番号の形式
ID 番号の形式には一定の規定があり、次の情報が含まれます:
ID 番号は合計 18 桁で、最初の 17 桁は数字または大文字、最後の 1 桁は数字または大文字の X です。したがって、正規表現を使用して ID 番号の生年月日を照合する前に、ID 番号の形式を理解しておく必要があります。
2. 正規表現の使用
PHP では、preg_match 関数を使用して正規表現を呼び出し、ID 番号を照合します。生年月日を照合するには、括弧 () を使用して誕生年、月、日をグループ化し、次のように正規表現で対応するワイルドカード文字を使用する必要があります:
$pattern = '/^d{6}(19|20)d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])d{3}[dX]$/';
where:
# は一致する文字列の先頭を表し、d{6}
は最初の 6 つの州および市の情報と一致します。 誕生年の最初の 2 桁と一致します (19 または 20 に制限されます);
と一致します誕生年の最後の 2 桁;
誕生月と一致します。範囲は 01 ~ 12 です。
生年月日と一致します。制限範囲は 01 ~ 31 です。
ID 番号の最後の 3 桁と一致 コード検証;
は ID 番号の最後の 1 桁と一致します。数字または大文字の X;
は文字列の末尾と一致することを示します。
$id_card = '34052419951117258X'; // 身份证号码 $pattern = '/^d{6}(19|20)d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])d{3}[dX]$/'; // 正则表达式 if (preg_match($pattern, $id_card, $matches)) { $birth_year = $matches[1] . $matches[2]; // 出生年份 $birth_month = $matches[3]; // 出生月份 $birth_day = $matches[4]; // 出生日期 echo "出生日期:{$birth_year}-{$birth_month}-{$birth_day}"; // 输出 } else { echo "身份证号码格式不正确"; }
出生日期:1995-11-17
以上がPHPで正規表現を使用してID番号と生年月日を一致させる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。