Regulärer PHP-Ausdruck zur Überprüfung der Richtigkeit der ID-Nummer

PHPz
Freigeben: 2023-06-24 10:26:01
Original
1711 Leute haben es durchsucht

Im Prozess der Website-Entwicklung ist es oft notwendig, die vom Benutzer eingegebenen Daten zu überprüfen, und die Überprüfung der betreffenden ID-Nummer ist ein sehr wichtiger Teil davon. Die ID-Nummer ist der einzige Nachweis der persönlichen Identität und es ist wichtig, die Richtigkeit der ID-Nummer zu überprüfen. In diesem Artikel wird erläutert, wie Sie mithilfe regulärer PHP-Ausdrücke die Richtigkeit von ID-Nummern überprüfen.

Grundregeln für die ID-Nummer
Die ID-Nummer besteht aus 18 Ziffern und Buchstaben (X), wobei die ersten 17 Ziffern ein festes Format haben und die letzte Ziffer eine Zahl oder „X“ sein kann. Die ersten 6 Ziffern der ID-Nummer sind die Ortsvorwahl, die mittleren 8 Ziffern sind das Geburtsdatum und die letzten 4 Ziffern sind ein Prüfcode bestehend aus Region, Geschlecht und Sequenznummer. Darunter gelten für die Vorwahl, das Geburtsdatum und den Prüfcode feste Regeln.

Überprüfung der ID-Nummer

Mit der Funktion preg_match in PHP kann die ID-Nummer einfach überprüft werden. Der erste Parameter der Funktion preg_match ist der abzugleichende reguläre Ausdruck und der zweite Parameter ist die abzugleichende Zeichenfolge. Hier ist ein Beispiel:

$pattern = '/^d{17}[Xd]$/';
$id = '110101199001011234'; //Zu überprüfende ID-Nummer
if (preg_match($pattern, $id ) ) {

//身份证号码格式正确
Nach dem Login kopieren

} else {

//身份证号码格式错误
Nach dem Login kopieren
Nach dem Login kopieren

}

Im obigen Code wird der reguläre Ausdruck $pattern verwendet, um die ID-Nummer zu überprüfen. Es gibt an, dass die ID-Nummer aus 17 Ziffern und einer Zahl oder einem Buchstaben „X“ bestehen sollte. Als nächstes erklären wir im Detail, wie die verschiedenen Teile der ID-Nummer übereinstimmen sollen.

Übereinstimmende Vorwahl

Die ersten 6 Ziffern der Personalausweisnummer sind die Vorwahl und geben die Verwaltungseinheit an, in der sich die Personalausweisnummer befindet. Dabei repräsentieren die ersten beiden Ziffern die Provinz und die letzten vier Ziffern die Stadt oder den Landkreis. Vorwahlen werden vom Staat einheitlich vergeben und jede Verwaltungseinheit verfügt über eine entsprechende Vorwahl.

Wir können den folgenden regulären Ausdruck verwenden, um Ortsvorwahlen abzugleichen:

$area_pattern = '/^([1-9]d|([1-9][0-9])d{4})$/' ;
$area_code = substr($id, 0, 6); //Die ersten 6 Ziffern der Vorwahl aus der ID-Nummer abrufen
if (preg_match($area_pattern, $area_code)) {

//区域代码格式正确
Nach dem Login kopieren

} else {

//区域代码格式错误
Nach dem Login kopieren

}

Im obigen Code wird der reguläre Ausdruck $area_pattern verwendet, um die Ortsvorwahl abzugleichen. Es gibt an, dass die Vorwahl aus 6 Ziffern bestehen sollte. $area_code wird verwendet, um die ersten 6 Ziffern der Vorwahl aus der ID-Nummer zu extrahieren.

Geburtsdatum abgleichen

Die mittleren 8 Ziffern der Personalausweisnummer sind das Geburtsdatum und geben das Jahr, den Monat und den Tag der Geburt des Inhabers an. Dabei repräsentieren die ersten 4 Ziffern das Jahr, die letzten 2 Ziffern den Monat und die letzten 2 Ziffern die Anzahl der Tage. Das Geburtsdatum sollte bestimmten Regeln entsprechen, z. B. darf das Jahr das aktuelle Jahr nicht überschreiten usw.

Wir können den folgenden regulären Ausdruck verwenden, um das korrekte Geburtsdatum abzugleichen:

$birthday_pattern = '/^((19|20)d{2})(0[1-9]|1[012])( 0 [1-9]|[12][0-9]|3[01])$/';
$birthday = substr($id, 6, 8); //Entferne die mittleren 8 Geburtsziffern aus dem ID-Nummer Datum
if (preg_match($birthday_pattern, $birthday)) {

//出生日期格式正确
Nach dem Login kopieren

} else {

//出生日期格式错误
Nach dem Login kopieren

}

Im obigen Code wird der reguläre Ausdruck $birthday_pattern verwendet, um das korrekte Geburtsdatum abzugleichen. Es gibt an, dass das Geburtsdatum aus 4 Ziffern für das Jahr, 2 Ziffern für den Monat und 2 Ziffern für den Tag bestehen sollte. Mit $birthday wird das mittlere 8-stellige Geburtsdatum aus der ID-Nummer extrahiert.

Übereinstimmender Verifizierungscode

Die letzte Ziffer der ID-Nummer ist der Verifizierungscode, mit dem überprüft wird, ob die ID-Nummer korrekt ist. Der Prüfcode wird aus den ersten 17 Ziffern berechnet, die aus Informationen wie Region, Geschlecht und Sequenznummer bestehen. Durch einen bestimmten Algorithmus kann ein Prüfcode ermittelt werden. Wenn dieser mit der letzten Ziffer der ID-Nummer übereinstimmt, bedeutet dies, dass die ID-Nummer korrekt ist.

Wir können den folgenden regulären Ausdruck verwenden, um den Prüfcode abzugleichen:

$check_code_pattern = '/^d{17}[Xd]$/';
if (preg_match($check_code_pattern, $id)) {

$n = 0;
for ($i = 0; $i < 17; $i++) {
    $n += $id[$i] * pow(2, 17 - $i) % 11;
}
$check_code = $n % 11 == 1 ? 'X' : (12 - $n % 11);
if ($check_code == substr($id, -1)) {
    //身份证号码校验通过
} else {
    //身份证号码校验失败
}
Nach dem Login kopieren

} else {

//身份证号码格式错误
Nach dem Login kopieren
Nach dem Login kopieren

}

Im obigen Code wird der reguläre Ausdruck $check_code_pattern verwendet, um sicherzustellen, dass die ID-Nummer dem Format der ersten 17 Ziffern plus der letzten Ziffer oder dem Buchstaben „X“ entspricht. Wenn das Format der ID-Nummer korrekt ist, verwenden Sie einen bestimmten Algorithmus, um den Prüfcode $check_code zu berechnen und ihn mit der letzten Ziffer der ID-Nummer zu vergleichen.

Zusammenfassung

In diesem Artikel wird erläutert, wie Sie reguläre PHP-Ausdrücke verwenden, um die Richtigkeit von ID-Kartennummern zu überprüfen. Die ID-Nummer ist die einzige persönliche Identifikation, daher ist die Überprüfung der ID-Nummer bei der Entwicklung einer Website sehr wichtig. Durch die Einleitung dieses Artikels glaube ich, dass jeder problemlos reguläre PHP-Ausdrücke verwenden kann, um ID-Nummern zu überprüfen.

Das obige ist der detaillierte Inhalt vonRegulärer PHP-Ausdruck zur Überprüfung der Richtigkeit der 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