Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie reguläre Ausdrücke in PHP, um nur Ausweise abzugleichen

So verwenden Sie reguläre Ausdrücke in PHP, um nur Ausweise abzugleichen

PHPz
PHPzOriginal
2023-03-21 19:12:331461Durchsuche

Regulärer Ausdruck ist ein häufig in Programmen verwendetes Werkzeug, das eine Reihe von Regeln verwenden kann, um Text abzugleichen und zu ändern. In PHP ist die Verwendung regulärer Ausdrücke sehr wichtig und wird hauptsächlich für String-Matching-, Ersetzungs- und Extraktionsvorgänge verwendet.

Unter allen regulären Ausdrücken ist der Abgleich einer ID-Nummer ein klassisches Problem. In PHP können wir ID-Nummern über eine Reihe regulärer Ausdrücke abgleichen.

Zuerst müssen wir die Struktur der ID-Nummer verstehen. Gemäß dem nationalen Standard „Citizen Identity Number“ (GB 11643-1999) hat die ID-Nummer insgesamt 18 Ziffern. Die ersten 17 Ziffern sind die Vorwahl und das Geburtsdatum, und die 18. Ziffer ist der Prüfcode.

Dabei sind die ersten 6 Ziffern der Regionalcode, einschließlich der Abkürzungen von Provinzen, autonomen Regionen und Gemeinden, die direkt der Zentralregierung unterstehen. Die 7. bis 14. Ziffer sind der Code für Datum, Monat und Tag der Geburt im Format JJJJMMTT. Die 15. bis 17. Ziffer sind die Seriennummern, also die Seriennummern von Personen, die am selben Tag in derselben Gegend geboren wurden. Eine ungerade Zahl in der 17. Ziffer weist auf einen Mann hin, eine gerade Zahl auf eine Frau. Die letzte Ziffer ist ein Prüfcode, eine nach nationalen Standards berechnete Zahl.

Entsprechend der Struktur der ID-Nummer können wir den folgenden regulären PHP-Ausdruck schreiben:

$pattern = '/^([1-9]\d{5})(19\d{2}|20\d{2})(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i';

Im obigen regulären Ausdruck:

  • ^ bedeutet, mit diesem regulären Ausdruck zu beginnen, um zuzuordnen
  • () bedeutet eine Gruppe
  • [1-9] steht für eine beliebige Zahl von 1 bis 9.
  • d steht für eine beliebige Zahl, die [0-9] entspricht.
  • {5} steht für das vorherige Element, das fünfmal wiederholt werden soll. bedeutet 1 oder 2
  • $ bedeutet, dass der Abgleich mit diesem regulären Ausdruck beendet wird. Da es am Ende möglicherweise X ist, verwenden wir (d|X), um es auszudrücken.
  • Verwenden Sie die Funktion preg_match, um die ID-Nummer abzugleichen. Der Code lautet wie folgt:
$pattern = '/^([1-9]\d{5})(19\d{2}|20\d{2})(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i';
$id_card = '11010119880101001X';
if (preg_match($pattern, $id_card)) {
   echo '匹配成功';
} else {
   echo '匹配失败';
}
  • In diesem Beispiel werden die beiden Variablen $pattern und $id_card als Parameter an die Funktion preg_match übergeben. Bei erfolgreichem Match wird „Match erfolgreich“ ausgegeben, andernfalls „Match fehlgeschlagen“.
  • Kurz gesagt, reguläre PHP-Ausdrücke sind ein sehr leistungsfähiges Tool, mit dem komplexe Zeichenfolgen wie ID-Nummern abgeglichen werden können. Durch diesen Artikel sollten Sie lernen, wie Sie reguläre Ausdrücke verwenden, um ID-Nummern in PHP abzugleichen.
  • Das obige ist der detaillierte Inhalt vonSo verwenden Sie reguläre Ausdrücke in PHP, um nur Ausweise abzugleichen. 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