ホームページ > バックエンド開発 > PHPチュートリアル > PHP 正規表現の練習: ID 番号の照合

PHP 正規表現の練習: ID 番号の照合

WBOY
リリース: 2023-06-23 12:26:02
オリジナル
2040 人が閲覧しました

日々の開発では、ID カード番号を一致させる必要があるシナリオが数多くあります。 ID 番号は固定形式ですが、各州によってルールが若干異なるため、一致させるには特定の正規表現が必要です。

PHP は広く使用されているプログラミング言語で、ID 番号を簡単に照合できる正規表現関数とクラスが組み込まれています。この記事では、PHP 正規表現を使用して ID カード番号を照合する方法を紹介します。

  1. ID カード番号の形式

ID 番号は 18 桁の数字とチェック コードで構成されます。チェック コードは数字または文字 X です。最初の17桁は住所コード、生年月日コード、シーケンスコードを表し、最後の桁はID番号の正当性を確認するためのチェックコードです。

ID 番号の形式は次のとおりです。

① アドレスコード。戸籍地の行政区分コードを示す6桁の番号です。

② 生年月日コード。 IDカード所有者の生年月日を示す8桁の数字。

③ シーケンスコード。同じ住所コードと生年月日コードの下で一意であることを示す 3 桁の数字。

④ 検証コード。 ID 番号の有効性を確認するために使用される 1 つの数字または文字。

各都道府県の行政区画コードが異なるため、ID 番号を照合するには異なる正規表現が必要です。 ID 番号と一致する正規表現を記述する方法を見てみましょう。

  1. 住所コード照合

住所コードはID番号の上6桁で、戸籍地の行政区分コードを示します。各都道府県の行政区画コードが異なるため、住所コードに合わせて異なる正規表現を記述する必要があります。

北京を例に挙げると、北京の住所コードは 110000 で、正規表現は次のとおりです:

$pattern = '/^110000/';
ログイン後にコピー

このうち、^ は一致する文字列の先頭を表し、110000 は一致する文字列の先頭を表します。一致する必要があるアドレス コード。

他の都道府県の正規表現は、行政区画コードに応じて適宜変更できます。

  1. 生年月日コード照合

生年月日コードは、ID カード番号の 7 桁目から 14 桁目で、年、月、日を示します。 IDカードホルダーの誕生。生年月日コードの形式は yyyyMMdd です。yyyy は誕生年、MM は誕生月、dd は誕生日を表します。

生年月日コードの正規表現は以下のとおりです。

$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]$/';
ログイン後にコピー

このうち、[1-9]d{5}は住所コードの上6桁を表し、(19) |20)d{2} は、誕生年が 1900 年から 2099 年までであることを表します (0[1-9]|1[012]) は、誕生月が 01 日から 12 月までであることを意味します (0[1-9]| 12|3[01]) は誕生日が 01 であることを意味します。31 日までは、d{3} はシーケンス コードを表し、[0-9Xx] はチェック コード (数字または文字 X を使用できます) を表します。

  1. 完全な正規表現

住所コードと生年月日コードの正規表現を組み合わせることで、ID 番号の完全な一致ルールを取得できます:

$pattern = '/^110000(19|20)d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])d{3}[0-9Xx]$/';
ログイン後にコピー

この正規表現は北京市の ID カード番号と一致し、他の省の正規表現は対応する行政区画コードに応じて変更できます。

  1. PHP 正規表現を使用して ID 番号を照合する

PHP では、preg_match 関数を使用して ID 番号を照合できます。以下に例を示します。

$id_number = '110101199001010013'; // 待匹配的身份证号码
$pattern = '/^110000(19|20)d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])d{3}[0-9Xx]$/'; // 匹配规则
if (preg_match($pattern, $id_number)) {
    echo '身份证号码格式正确';
} else {
    echo '身份证号码格式错误';
}
ログイン後にコピー

このコードでは、$id_number は照合する必要がある ID 番号で、$pattern は照合ルールです。 ID 番号が一致ルールを満たしている場合、出力形式は正しいですが、そうでない場合、出力形式は正しくありません。

  1. 概要

PHP 正規表現を使用すると、ID 番号を簡単に照合できます。住所コードと照合するには、各州の行政区画コードに応じて対応する正規表現を記述し、住所コードと生年月日コードを組み合わせて完全な ID カード番号を照合する必要があります。実際のアプリケーションでは、コードに一致する ID 番号を関数にカプセル化して、簡単に再利用できます。

以上がPHP 正規表現の練習: ID 番号の照合の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート