PHP-Praxis für reguläre Ausdrücke: passende ID-Nummer

WBOY
Freigeben: 2023-06-23 12:26:02
Original
1977 Leute haben es durchsucht

In der täglichen Entwicklung gibt es viele Szenarien, in denen ID-Nummern abgeglichen werden müssen. Die ID-Nummer hat ein festes Format, aber jede Provinz hat leicht unterschiedliche Regeln, sodass für die Übereinstimmung ein bestimmter regulärer Ausdruck erforderlich ist.

PHP ist eine weit verbreitete Programmiersprache. Sie bietet integrierte Funktionen und Klassen für reguläre Ausdrücke, mit denen ID-Kartennummern problemlos abgeglichen werden können. In diesem Artikel wird erläutert, wie Sie reguläre PHP-Ausdrücke verwenden, um Ausweisnummern abzugleichen.

  1. Format der Ausweisnummer

Die Ausweisnummer besteht aus 18 Ziffern und einem Prüfcode, wobei der Prüfcode eine Zahl oder der Buchstabe X sein kann. Die ersten 17 Ziffern stellen den Adresscode, den Geburtsdatumscode und den Sequenzcode dar, und die letzte Ziffer ist der Prüfcode, der zur Überprüfung der Gültigkeit der ID-Nummer verwendet wird.

Das Format der ID-Nummer ist wie folgt:

① Adresscode. Eine 6-stellige Nummer, die den Verwaltungsbezirkscode des Ortes angibt, an dem der Haushalt registriert ist.

② Geburtsdatumscode. Eine 8-stellige Zahl, die das Geburtsdatum, den Geburtsmonat und den Geburtstag des Ausweisinhabers angibt.

③ Sequenzcode. Eine dreistellige Nummer, die angibt, dass sie unter demselben Adresscode und Geburtsdatumscode eindeutig ist.

④ Bestätigungscode. 1 Ziffer oder Buchstabe, die zur Überprüfung der Gültigkeit der ID-Nummer verwendet wird.

Da die Verwaltungsabteilungscodes jeder Provinz unterschiedlich sind, sind unterschiedliche reguläre Ausdrücke erforderlich, um die ID-Kartennummer abzugleichen. Sehen wir uns an, wie man reguläre Ausdrücke schreibt, um ID-Nummern abzugleichen.

  1. Adresscode-Abgleich

Der Adresscode besteht aus den ersten 6 Ziffern der ID-Nummer und wird zur Angabe des Verwaltungsabteilungscodes des Wohnorts verwendet. Da die Verwaltungscodes der einzelnen Provinzen unterschiedlich sind, müssen unterschiedliche reguläre Ausdrücke geschrieben werden, um den Adresscodes zu entsprechen.

Nehmen Sie Peking als Beispiel. Der Adresscode von Peking ist 110000. Der reguläre Ausdruck lautet wie folgt:

$pattern = '/^110000/';
Nach dem Login kopieren

Unter diesen steht ^ für den Anfang der übereinstimmenden Zeichenfolge und 110000 für den Adresscode, der abgeglichen werden muss.

Reguläre Ausdrücke in anderen Provinzen können entsprechend dem Verwaltungsabteilungscode entsprechend geändert werden.

  1. Abgleich des Geburtsdatumscodes

Der Geburtsdatumscode besteht aus der 7. bis 14. Ziffer der Ausweisnummer und dient zur Angabe des Geburtsjahres, -monats und -tages des Ausweisinhabers. Das Format des Geburtsdatumscodes ist jjjjMMtt, wobei jjjj für das Geburtsjahr, MM für den Geburtsmonat und dd für den Geburtstag steht.

Der reguläre Ausdruck des Geburtsdatumscodes lautet wie folgt:

$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]$/';
Nach dem Login kopieren

wobei [1-9]d{5} die ersten 6 Ziffern des Adresscodes darstellt, (19|20)d{2} das Jahr darstellt Geburt von 1900 bis 2099, (0[1-9]|1[012]) bedeutet, dass der Geburtsmonat von 01 bis Dezember ist, (0[1-9]|12|3[01]) bedeutet, dass der Geburtstag von ist 01 bis 31, d{3} stellt den Sequenzcode dar, [0-9Xx] stellt den Prüfcode dar (kann eine Zahl oder ein Buchstabe X sein).

  1. Vollständiger regulärer Ausdruck

Durch die Kombination des regulären Ausdrucks des Adresscodes und des Geburtsdatumscodes erhalten Sie die vollständige Übereinstimmungsregel für die Personalausweisnummer:

$pattern = '/^110000(19|20)d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])d{3}[0-9Xx]$/';
Nach dem Login kopieren

Dieser reguläre Ausdruck kann mit der Personalausweisnummer übereinstimmen Von Peking können die regulären Ausdrücke anderer Provinzen gemäß den entsprechenden Verwaltungsabteilungscodes geändert werden.

  1. Verwenden Sie einen regulären PHP-Ausdruck, um die ID-Nummer abzugleichen.

In PHP können Sie die Funktion preg_match verwenden, um die ID-Nummer abzugleichen. Hier ist ein Beispiel:

$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 '身份证号码格式错误';
}
Nach dem Login kopieren

In diesem Code ist $id_number die ID-Nummer, die abgeglichen werden muss, und $pattern ist die Abgleichsregel. Wenn die ID-Nummer den Übereinstimmungsregeln entspricht, ist das Ausgabeformat korrekt; andernfalls ist das Ausgabeformat falsch.

  1. Zusammenfassung

Mit regulären PHP-Ausdrücken können ID-Kartennummern problemlos abgeglichen werden. Es ist erforderlich, entsprechende reguläre Ausdrücke gemäß den Verwaltungsabteilungscodes verschiedener Provinzen zu schreiben, um sie mit dem Adresscode abzugleichen, und dann die vollständige ID-Kartennummer durch Kombination des Adresscodes und des Geburtsdatumscodes abzugleichen. In praktischen Anwendungen kann der ID-Nummer-Übereinstimmungscode zur einfachen Wiederverwendung in eine Funktion gekapselt werden.

Das obige ist der detaillierte Inhalt vonPHP-Praxis für reguläre Ausdrücke: passende ID-Nummer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!