ID 番号は日常生活で頻繁に使用される重要な文書であり、ID 番号の最後のチェック コードの検証は、ID 番号が合法であるかどうかを判断する重要な部分です。 PHP プログラミングを使用する場合、正規表現を使用して ID 番号内のチェック コードを検証し、ID 番号の有効性を確認できます。 PHPの正規表現を利用してIDカード番号のチェックコードを確認する方法を紹介します。
まず、ID 番号の形式を理解する必要があります。 ID カード番号は 18 桁の数字と文字で構成され、最初の 17 桁は州、市、郡、生年月日などの情報を表し、最後の桁はチェック コードです。チェックコードの計算規則は次のとおりです。
上記の基本的な知識があれば、ID 番号を検証するための正規表現を書くことができます。以下はサンプルコードです:
function checkIDCard($id_card){ $pattern = '/^d{6}(19|20)d{2}(0d|1[0-2])([0-2]d|3[0-1])d{3}[0-9X]$/'; if(preg_match($pattern, $id_card)){ $wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); $ai = str_split(substr($id_card, 0, 17)); $n = 0; for($i=0; $i<17; $i++){ $n += $wi[$i] * $ai[$i]; } $c = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); $check_code = $c[$n % 11]; return $check_code == substr($id_card, -1); } return false; } $id_card = '33010219950917413X'; if(checkIDCard($id_card)){ echo '身份证号码校验成功'; }else{ echo '身份证号码校验失败'; }
上記の正規表現では、d は数字の一致を意味し、{6} は 6 回の一致を意味し、(19|20)d{2} は 19 または 20 で始まる数字の一致を意味します。 4 桁、(0d|1[0-2]) は 01 から 12 までの月と一致することを意味し、([0-2]d|3[0-1]) は 01 から 31 までの日付と一致することを意味します。d{3} [0-9X]$ は、数字または X で終わることを意味します。このようにして、ID 番号を効果的に照合することができます。
最後に、コードが機能するかどうかをテストできます。 IDカード番号の認証コードを変更し、コードの認証機能が正常かどうかを確認することができます。例:
$id_card = '330102199509174133';
または:
$id_card = '330102199509174139';
これら 2 つの ID 番号のチェック コードは間違っているため、検証に合格しません。コードを実行すると、ID 番号検証失敗の結果が出力され、コードが正常に動作することがわかります。
つまり、PHP正規表現を利用してID番号のチェックコードを検証する方法は比較的簡単で、適切な正規表現と関連関数を記述するだけでID番号の検証が簡単に完了します。 . 検証作業。
以上がPHP正規表現を使用してIDカード番号のチェックコードを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。