Heim > Backend-Entwicklung > PHP-Tutorial > So überprüfen Sie den Prüfcode der Personalausweisnummer mithilfe eines regulären PHP-Ausdrucks

So überprüfen Sie den Prüfcode der Personalausweisnummer mithilfe eines regulären PHP-Ausdrucks

WBOY
Freigeben: 2023-06-24 10:58:02
Original
1810 Leute haben es durchsucht

Die ID-Nummer ist ein wichtiges Dokument, das Menschen im täglichen Leben häufig verwenden, und die Überprüfung des letzten Prüfcodes in der ID-Nummer ist ein wichtiger Teil dafür, ob die ID-Nummer legal ist. Beim Programmieren in PHP können wir reguläre Ausdrücke verwenden, um den Prüfcode in der ID-Nummer zu überprüfen und so die Gültigkeit der ID-Nummer sicherzustellen. Im Folgenden wird die Methode zur Überprüfung des Prüfcodes der Personalausweisnummer mithilfe regulärer PHP-Ausdrücke vorgestellt.

  1. Format der ID-Nummer

Zunächst müssen wir das Format der ID-Nummer verstehen. Die ID-Kartennummer besteht aus 18 Ziffern und Buchstaben, wobei die ersten 17 Ziffern Provinz, Stadt, Landkreis, Geburtsdatum und andere Informationen darstellen und die letzte Ziffer ein Prüfcode ist. Die Berechnungsregeln des Prüfcodes lauten wie folgt:

  1. Multiplizieren Sie die ersten 17 Ziffern der ID-Nummer nacheinander mit dem entsprechenden Gewichtsfaktor, dh der Gewichtsfaktor der i-ten Ziffer ist Wi.
  2. Fügen Sie diese 17 Produkte hinzu, um S zu erhalten.
  3. Der Prüfcode N ist der Rest von 11 minus S dividiert durch 11, wobei X für 10 steht.
  4. Reguläre Ausdrücke vorbereiten

Mit den oben genannten Grundkenntnissen können wir reguläre Ausdrücke schreiben, um ID-Nummern zu überprüfen. Das Folgende ist ein Beispielcode:

function checkIDCard($id_card){
    $pattern = '/^d{6}(19|20)d{2}(0d|1[0-2])([0-2]d|3[0-1])d{3}[0-9X]$/';
    if(preg_match($pattern, $id_card)){
        $wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
        $ai = str_split(substr($id_card, 0, 17));
        $n = 0;
        for($i=0; $i<17; $i++){
            $n += $wi[$i] * $ai[$i];
        }
        $c = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
        $check_code = $c[$n % 11];
        return $check_code == substr($id_card, -1);
    }
    return false;
}

$id_card = '33010219950917413X';
if(checkIDCard($id_card)){
    echo '身份证号码校验成功';
}else{
    echo '身份证号码校验失败';
}
Nach dem Login kopieren

Im obigen regulären Ausdruck bedeutet d die Übereinstimmung von Zahlen, {6} bedeutet die Übereinstimmung von 6 Malen, (19|20)d{2} bedeutet die Übereinstimmung von 4-stelligen Zahlen, beginnend mit 19 oder 20, (0d|1[0-2]) bedeutet übereinstimmende Monate von 01 bis 12, ([0-2]d|3[0-1]) bedeutet übereinstimmende Daten von 01 bis 31, d{3} bedeutet übereinstimmende drei weitere Zahlen , [0-9X]$ bedeutet, dass es mit einer Zahl oder einem X endet. Dadurch wird die ID-Nummer effektiv abgeglichen.

  1. Testen und überprüfen

Endlich können wir testen, ob unser Code funktioniert. Wir können den Bestätigungscode der ID-Nummer ändern, um zu überprüfen, ob die Überprüfungsfunktion des Codes normal ist. Zum Beispiel:

$id_card = '330102199509174133';
Nach dem Login kopieren

oder:

$id_card = '330102199509174139';
Nach dem Login kopieren

Die Prüfcodes dieser beiden ID-Nummern sind falsch und sollten die Überprüfung nicht bestehen. Und wenn wir den Code ausführen, werden wir sehen, dass das Ergebnis des Verifizierungsfehlers der ID-Nummer ausgegeben wird, was beweist, dass unser Code normal funktionieren kann.

Kurz gesagt, die Methode zur Verwendung eines regulären PHP-Ausdrucks zur Überprüfung des Prüfcodes der ID-Kartennummer ist relativ einfach. Sie müssen lediglich einen geeigneten regulären Ausdruck und zugehörige Funktionen schreiben, um die Überprüfung der ID-Kartennummer einfach abzuschließen.

Das obige ist der detaillierte Inhalt vonSo überprüfen Sie den Prüfcode der Personalausweisnummer mithilfe eines regulären PHP-Ausdrucks. 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