Heim > Artikel > Backend-Entwicklung > PHP-Praxis für reguläre Ausdrücke: passende ID-Nummer
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.
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.
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/';
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.
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]$/';
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).
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]$/';
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.
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 '身份证号码格式错误'; }
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.
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!