ホームページ  >  記事  >  バックエンド開発  >  IDカード番号のチェックコードを検証するためのPHP正規表現

IDカード番号のチェックコードを検証するためのPHP正規表現

WBOY
WBOYオリジナル
2023-06-24 10:42:101360ブラウズ

PHP を使用して開発する場合、データの正確性と完全性を保証するために、ユーザーが入力した ID 番号を検証することがよくあります。 ID 番号内の確認コードは非常に重要な部分であり、ID 番号が合法かどうかを判断するのに役立ちます。したがって、PHP を使用して ID 番号を検証する場合は、正規表現を使用して ID 番号のチェック コードを検証する方法を理解する必要があります。

1. ID番号の確認コードとは何ですか?

ID 番号は、すべての中国国民が所有する必要がある重要な書類であり、18 桁の数字と文字で構成されています。このうち最初の17桁がIDカード番号の本体部分で、生年月日を表す6桁、戸籍地を表す6桁、シーケンスコードを表す4桁で構成され、18桁目が小切手となります。 ID カード番号のコード。最初の 17 桁から一定の規則に従って計算される数字または文字であり、ID 番号の正確性を確認するために使用されます。

2. ID カード番号チェック コードの計算方法

ID カード番号チェック コードの計算方法は非常に複雑であり、計算にはいくつかの数学的原理とアルゴリズムを使用する必要があります。詳しい計算方法はインターネットで検索すると出てきますので、ここでは詳しく紹介しません。

3. 正規表現を使用して ID 番号のチェックコードを確認する

PHP を使用して ID 番号を確認する場合、正規表現を使用して ID 番号を確認することができます。以下は単純な正規表現です:

/^(d{17})([0-9x])$/i

この正規表現では、^ は開始位置 ( d{17}) は 17 個の数字を表し、([0-9x]) は 1 つの数字または文字 x または文字 X を表し、$ は終了位置を表します。 i は大文字と小文字を区別しないことを意味します。

この正規表現を使用すると、ID 番号の最初の 17 桁が正当であるかどうかを簡単に検証し、ID 番号の検証コードを取得できます。以下はサンプル コードです。

function checkIDCard($idCard) {

    // 正则表达式验证身份证号码的格式
    $regex = '/^(d{17})([0-9x])$/i';

    if (!preg_match($regex, $idCard, $matches)) {
        return false;
    }

    // 获取身份证号码前17位
    $idCard17 = $matches[1];

    // 获取身份证号码最后一位校验码
    $idCard18 = $matches[2];

    // TODO:计算身份证号码的校验码,然后与输入的校验码进行比对,判断该身份证号码是否合法

    return true;
}

上記のコードでは、preg_match 関数を使用して ID 番号の正規表現検証を実行しています。検証に合格すると、$matches 配列が取得されます。$matches[1] は ID 番号の最初の 17 桁、$matches[2] は ID 番号の検証コードの最後の桁です。次に、ID 番号のチェック コードを計算し、入力されたチェック コードと比較して、ID 番号が正当であるかどうかを判断する必要があります。

4. 概要

ID 番号は非常に重要なドキュメントであり、PHP を使用して ID 番号を確認することは、開発において非常に一般的な要件です。 ID 番号を検証する場合、ID 番号の正確性を保証するために、ID 番号内の検証コードを計算して比較する必要があります。正規表現の検証により、ID 番号の最初の 17 桁とチェック コードを簡単に取得して、さらなる検証を行うことができます。

以上がIDカード番号のチェックコードを検証するためのPHP正規表現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。