Maison > Article > développement back-end > Pratique des expressions régulières PHP : correspondance du code ISBN
Le code ISBN est un code d'identification unique pour un livre et est utilisé pour identifier le numéro international standard du livre. Le code ISBN se compose généralement de 13 chiffres, dont le dernier chiffre est un code de contrôle calculé sur la base des 12 chiffres précédents. En PHP, nous pouvons utiliser des expressions régulières pour faire correspondre les codes ISBN afin de garantir leur exactitude.
Le format du code ISBN est le suivant :
ISBN13 : 978-7-111-40543-9
Parmi eux, le premier trois chiffres sont le code EAN du pays, les quatrième à sixième chiffres sont le code de l'éditeur, les septième à douzième chiffres sont le numéro du livre et le dernier chiffre est le code de contrôle. Pour la méthode de calcul du code de chèque, veuillez vous référer à ce lien : 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.
Nous pouvons utiliser des expressions régulières pour faire correspondre les codes ISBN13, comme suit :
$pattern = '/^978-[d]{1,5}-[d]{1,7}-[d]{1,6}-[dX]$/';
Parmi eux, "^" et "$" représentent le début et la fin de la chaîne " ; [d ]" représente n'importe quel nombre, "{1,5}" représente le nombre répété 1 à 5 fois ; "[dX]" représente n'importe quel nombre ou lettre X.
Regardons une implémentation complète du code PHP :
<?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!'; } ?>
Dans ce code, nous définissons une fonction appelée checkISBN, qui reçoit un code ISBN en paramètre. En interne, la fonction utilise d'abord une expression régulière pour effectuer une vérification du format du code ISBN, puis calcule le code de contrôle en fonction des 12 premiers chiffres et enfin le compare avec le code de contrôle du code ISBN d'origine pour déterminer s'il est valide.
Nous pouvons enregistrer le code ci-dessus en tant que fichier PHP, puis l'exécuter dans la ligne de commande. Le résultat de sortie est :
978-7-111-40543-9 is a valid ISBN!
Si la valeur de $isbn est modifiée en. un code ISBN illégal, par exemple '978-7-111-40543-0', le résultat de sortie est :
978-7-111-40543-0 is not a valid ISBN!
Résumé :
L'expression régulière est un outil très puissant et outil flexible. A une large applicabilité. En PHP, nous pouvons utiliser des expressions régulières pour effectuer des opérations telles que la correspondance de chaînes et la vérification de format. La vérification des codes ISBN est également très pratique. Les développeurs peuvent utiliser les expressions régulières de manière flexible en fonction de leurs besoins réels pour améliorer l'efficacité et la maintenabilité du code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!