PHP は非常に人気のあるプログラミング言語であり、ユーザーが入力したさまざまなデータ形式を検証するために使用できる強力な正規表現関数を提供します。その中で、ID 番号の検証は非常に一般的な要件です。ID 番号は唯一の ID 識別子であり、多くのアプリケーション シナリオで厳密な検証が必要となるためです。この記事では、PHP 正規表現を使用して ID 番号を確認する方法を紹介します。
1. ID 番号の取得
ID 番号の検証を開始する前に、ユーザーが入力した ID 番号を取得する必要があります。ここでは説明しませんが、フォームの送信や API パラメーターの送信などによって取得できます。取得したID番号を$id_numberとする。
2. ID 番号の規則
正規表現検証を実行する前に、まず ID 番号の規則を理解する必要があります。 ID カード番号は 18 桁の数字と文字で構成されており、最初の 17 桁には州、市、郡 (地区) などの情報が含まれ、最後の桁はチェック コードです。具体的なルールは次のとおりです:
1. 最初の 1 桁と 2 桁は州の行政区画コードを表し、
2. 3 桁目と 4 桁は行政区画コードを表します。都市の番号;
3. 5 桁目と 6 桁目は、地区 (郡) の行政区画コードを表します;
4. 7 桁目から 14 桁目は、生年月日を表します。たとえば、701230 は 1970 年 12 月 3 月 30 日を表します;
5. 15 ~ 17 桁目は、地元の警察署のコードを表します;
6. 18 桁目は、次から計算されるチェック コードです。最初の 17 桁。
上記のルールに従って、ID 番号の正規表現を取得できます:
/^[1-9]d{5}(19|20)d{2}( (( 0[1-9])|(1[0-2]))((0[1-9])|([1-2]d)|(3[0-1]))d{3 }[ 0-9xX]$/
この正規表現を 1 つずつ分析してみましょう。
まず、^ は一致する文字列の開始位置、$ は一致する文字列の終了位置を表し、文字列全体が ID 番号の規則に従っていることを確認します。
次の [1-9]d{5} は、ID 番号の最初の 6 桁を表します。1 ~ 9 の任意の数字で、その後に 5 桁が続きます。これは実際には、州、市、または郡 (地区) の行政区画コードです。
(19|20)d{2} は ID 番号の最初の 8 ~ 9 桁 (19 または 20) とその後の 2 桁を表します。これは誕生年を表します。
次の ((0[1-9])|(1[0-2])) は ID 番号の最初の 10 ~ 11 桁を表し、01 ~ 12 の任意の数字を指定できます。誕生月を意味します。
すると、((0[1-9])|([1-2]d)|(3[0-1])) は ID 番号の最初の 12 ~ 13 桁を表します。 be 01 から 31 までの任意の数字で、生年月日を表します。
次に、d{3} は所轄の警察署のコードである ID 番号の最初の 14 ~ 16 桁を表し、任意の 3 桁を指定できます。
最後に、[0-9xX] は ID 番号の最後の桁を表し、0 ~ 9 または x または X になります。これはチェック コードです。
3. PHP 正規表現の使用
ID 番号の規則と正規表現を理解した後、PHP の preg_match 関数を使用して、ユーザーが入力した ID 番号を検証できます。具体的な使用法は次のとおりです。
$pattern = '/^[1-9]d{5}(19|20)d{2}((0[1-9])|(1[0-2]))((0[1-9])|([1-2]d)|(3[0-1]))d{3}[0-9xX]$/'; if(preg_match($pattern, $id_number)) { echo '身份证号码合法'; } else { echo '身份证号码不合法'; }
上記のコードでは、$pattern は先ほど定義した正規表現で、$id_number はユーザーが入力した ID 番号です。 preg_match 関数は、正規表現を使用してユーザーが入力した ID 番号を検証し、一致する結果を返します。照合が成功した場合は「ID カード番号が正当です」が出力され、そうでない場合は「ID カード番号が不正です」が出力されます。
4. 概要
この記事では、PHP 正規表現を使用して ID 番号を確認する方法を学びました。 ID 番号のルールは比較的複雑ですが、正規表現の基本的な構文と ID 番号のルールをマスターしていれば、検証は簡単に実装できます。実際のアプリケーションでは、さまざまな検証ニーズを満たすために、必要に応じて独自の正規表現をカスタマイズすることもできます。
以上がPHP正規表現を使用してIDカード番号を確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。