Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Praxis für reguläre Ausdrücke: Passender ISBN-Code

PHP-Praxis für reguläre Ausdrücke: Passender ISBN-Code

王林
王林Original
2023-06-23 08:20:531092Durchsuche

ISBN-Code ist ein eindeutiger Identifikationscode für ein Buch und wird zur Identifizierung der International Standard Book Number verwendet. Der ISBN-Code besteht normalerweise aus 13 Ziffern, wobei die letzte Ziffer ein Prüfcode ist, der auf der Grundlage der vorherigen 12 Ziffern berechnet wird. In PHP können wir reguläre Ausdrücke verwenden, um ISBN-Codes abzugleichen und deren Richtigkeit sicherzustellen.

Das Format des ISBN-Codes ist wie folgt:

ISBN13: 978-7-111-40543-9

Dabei sind die ersten drei Ziffern der EAN-Ländercode, die vierte bis sechste Ziffer der Verlagscode und die siebte bis zwölfte Ziffer sind: Die erste Ziffer ist die Buchnummer und die letzte Ziffer ist der Prüfcode. Informationen zur Berechnungsmethode des Prüfcodes finden Sie unter diesem Link: https://zh.wikipedia.org/wiki/International_Standard_Book_Number#EAN/UCC-%E5%9C%B0%E7%90%86%E7%A0% 81%E5% 92%8C%E6%A0%A1%E9%AA%8C%E7%A0%81.

Wir können reguläre Ausdrücke verwenden, um ISBN13-Codes wie folgt abzugleichen:

$pattern = '/^978-[d]{1,5}-[d]{1,7}-[d]{1,6}-[dX]$/';

Dabei stellen „^“ und „$“ den Anfang und das Ende der Zeichenfolge dar, „[d]“ steht für eine beliebige Zahl; 5 }“ bedeutet, dass die Zahl 1 bis 5 Mal wiederholt wird; „[dX]“ bedeutet eine beliebige Zahl oder ein beliebiger Buchstabe X.

Schauen wir uns eine vollständige PHP-Code-Implementierung an:

<?php
function checkISBN($isbn) {
    $pattern = '/^978-[d]{1,5}-[d]{1,7}-[d]{1,6}-[dX]$/';
    if (preg_match($pattern, $isbn)) {
        $digits = str_replace('-', '', substr($isbn, 0, -1));
        $length = strlen($digits);
        $sum = 0;
        for ($i = 0; $i < $length; $i++) {
            $sum += intval($digits[$i]) * (($i % 2 == 0) ? 1 : 3);
        }
        $checkDigit = 10 - ($sum % 10);
        if ($checkDigit == 10) {
            $checkDigit = 'X';
        }
        return $checkDigit == substr($isbn, -1);
    } else {
        return false;
    }
}

$isbn = '978-7-111-40543-9';
if (checkISBN($isbn)) {
    echo $isbn . ' is a valid ISBN!';
} else {
    echo $isbn . ' is not a valid ISBN!';
}

?>

In diesem Code definieren wir eine Funktion namens checkISBN, die einen ISBN-Code als Parameter erhält. Intern verwendet die Funktion zunächst einen regulären Ausdruck, um eine Formatüberprüfung des ISBN-Codes durchzuführen, berechnet dann den Prüfcode basierend auf den ersten 12 Ziffern und vergleicht ihn schließlich mit dem Prüfcode des ursprünglichen ISBN-Codes, um festzustellen, ob er gültig ist.

Wir können den obigen Code als PHP-Datei speichern und ihn dann in der Befehlszeile ausführen. Das Ausgabeergebnis ist:

978-7-111-40543-9 is a valid ISBN!

Wenn der Wert von $isbn in einen illegalen ISBN-Code geändert wird, z. B. '978-7-. 111-40543-0 ', das Ausgabeergebnis ist:

978-7-111-40543-0 is not a valid ISBN!

Zusammenfassung:

Regulärer Ausdruck ist ein sehr leistungsfähiges und flexibles Werkzeug mit breiter Anwendbarkeit. In PHP können wir reguläre Ausdrücke verwenden, um Vorgänge wie den String-Abgleich und die Formatüberprüfung durchzuführen. Die Überprüfung von ISBN-Codes ist ebenfalls sehr praktisch. Entwickler können reguläre Ausdrücke flexibel entsprechend ihren tatsächlichen Anforderungen verwenden, um die Effizienz und Wartbarkeit des Codes zu verbessern.

Das obige ist der detaillierte Inhalt vonPHP-Praxis für reguläre Ausdrücke: Passender ISBN-Code. 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