Heim  >  Artikel  >  Backend-Entwicklung  >  So überprüfen Sie das Ausweisformat mithilfe eines regulären PHP-Ausdrucks

So überprüfen Sie das Ausweisformat mithilfe eines regulären PHP-Ausdrucks

PHPz
PHPzOriginal
2023-06-24 10:34:291443Durchsuche

Der Personalausweis ist ein wichtiges Dokument. Für Websites, Apps und andere Anwendungen ist es oft notwendig zu überprüfen, ob die vom Benutzer eingegebene ID-Nummer den Spezifikationen entspricht. PHP bietet eine sehr praktische Möglichkeit, diese Funktion zu erreichen, nämlich die Verwendung regulärer Ausdrücke.

In diesem Artikel erfahren Sie, wie Sie mithilfe regulärer PHP-Ausdrücke das korrekte Format der ID-Nummer überprüfen.

1. Ausweisnummernformat

Bevor wir reguläre PHP-Ausdrücke zur Überprüfung des Ausweisnummernformats verwenden, müssen wir zunächst die Formatvorschriften der Ausweisnummer verstehen. Das chinesische Ausweisnummernformat besteht aus insgesamt 18 Ziffern, die ersten 17 Ziffern sind Zahlen und die letzte Ziffer ist ein Prüfcode (der aus Zahlen oder Großbuchstaben bestehen kann).

Die spezifischen Vorschriften lauten wie folgt:

  1. Die ersten 6 Ziffern sind der Adresscode, der den Verwaltungsbezirkscode des Wohnorts angibt.
  2. Als nächstes folgt das 8-stellige Geburtsdatum im Format JJJJMMTT.
  3. Die nächsten 4 Ziffern sind der Sequenzcode, der die Sequenznummer der Geburten im selben Adresscodebereich angibt, und die letzte Ziffer ist die Geschlechtskennung. Ungerade Zahlen sind männlich, gerade Zahlen sind weiblich.
  4. Die letzte Ziffer ist der Prüfcode, der eine Zahl oder der Buchstabe X sein kann.

Da wir nun das Format der ID-Nummer kennen, können wir reguläre PHP-Ausdrücke verwenden, um deren Richtigkeit zu überprüfen.

2. Überprüfung regulärer Ausdrücke

Die Überprüfung regulärer Ausdrücke verwendet normalerweise die Funktion preg_match und die Syntax lautet wie folgt:

preg_match($pattern, $subject);

Unter diesen stellt $pattern den regulären Ausdruck und $subject die Zeichenfolge dar, die überprüft werden muss . Wenn die Übereinstimmung erfolgreich ist, wird 1 zurückgegeben, andernfalls wird 0 zurückgegeben.

Als nächstes müssen wir einen regulären Ausdruck erstellen, der das Format der ID-Nummer überprüfen kann. Die spezifische Implementierungsmethode lautet wie folgt:

  1. Verwenden Sie zunächst d, um Zahlen abzugleichen, und verwenden Sie [xXd], um X oder x oder Zahlen abzugleichen.
  2. Dann verwenden Sie {18}, um eine 18-malige Wiederholung anzugeben.
  3. Fügen Sie als Nächstes Intervallbeschränkungen für die ersten 6 Ziffern hinzu und verwenden Sie den regulären Ausdruck /^([1-9]d{5})/, der angibt, dass die erste Ziffer 1-9 ist und die nächsten 5 Ziffern beliebige Zahlen sind.
  4. Fügen Sie Intervallbeschränkungen zum 8-stelligen Geburtsdatum hinzu, indem Sie den regulären Ausdruck /(d{4})([0-9]{2})([0-9]{2})/ verwenden, um das erste darzustellen 4 Die Ziffern können beliebige Zahlen sein, die letzten beiden Ziffern reichen von 00 bis 99 und die letzten beiden Ziffern reichen ebenfalls von 00 bis 99.
  5. Verwenden Sie den regulären Ausdruck /(d{3})(d{3})(d{2})(d[xXd])/ für den Sequenzcode und geben Sie an, dass die ersten drei Ziffern beliebige Zahlen sind und die mittleren drei Ziffern ist eine beliebige Zahl, die letzten beiden Ziffern sind ebenfalls eine beliebige Zahl und die letzte Ziffer kann eine Zahl oder der Buchstabe X sein.

Zusammenfassend kann der endgültige reguläre Ausdruck erhalten werden:

/^([1-9]d{5})(d{4})([0-9]{2})([0-9]{2})(d{3})(d{3})(d{2})(d[xXd])$/

Die Verwendung regulärer PHP-Ausdrücke zur Überprüfung der ID-Nummer erfordert die Verwendung der preg_match-Funktion. Das Codebeispiel lautet wie folgt:

function check_id_card($id_card) {
    // 加上正则表达式
    $reg = '/^([1-9]d{5})(d{4})([0-9]{2})([0-9]{2})(d{3})(d{3})(d{2})([dxX])$/';
    if (preg_match($reg, $id_card, $matches)) {
        // 校验地址码
        if (!check_address_code($matches[1])) {
            return false;
        }
        // 校验出生日期
        if (!check_birthday($matches[2] . "-" . $matches[3] . "-" . $matches[4])) {
            return false;
        }
        // 校验顺序码
        if (!check_order_code($matches[5])) {
            return false;
        }
        // 校验校验码
        if (!check_verify_code($matches[0])) {
            return false;
        }
        return true;
    }
    return false;
}

Darunter check_address_code, check_birthday , check_order_code, check_verify_code Die Funktionen werden verwendet, um die Richtigkeit des Adresscodes, des Geburtsdatums, des Sequenzcodes bzw. des Prüfcodes zu überprüfen und müssen entsprechend der spezifischen Situation implementiert werden.

3. Zusammenfassung

Mit der oben genannten Methode können Sie reguläre PHP-Ausdrücke verwenden, um die Richtigkeit der ID-Nummer zu überprüfen. Es ist zu beachten, dass die Überprüfung der ID-Nummer nicht nur eine Frage des Formats ist, sondern auch berücksichtigt werden muss, ob der Adresscode legal ist, ob das Geburtsdatum in einem angemessenen Bereich liegt und ob die Geschlechtskennung der Sequenzcode ist entspricht den Vorschriften usw. Daher muss die Code-Implementierung viele Faktoren berücksichtigen, um die Genauigkeit und Zuverlässigkeit der Verifizierungsergebnisse sicherzustellen.

Das obige ist der detaillierte Inhalt vonSo überprüfen Sie das Ausweisformat mithilfe eines regulären PHP-Ausdrucks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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