Maison  >  Article  >  développement back-end  >  Expression régulière PHP pour vérifier que la chaîne d'entrée est dans le format de codage ISBN correct

Expression régulière PHP pour vérifier que la chaîne d'entrée est dans le format de codage ISBN correct

WBOY
WBOYoriginal
2023-06-24 21:18:321351parcourir

ISBN (International Standard Book Number) est un numéro consécutif utilisé pour identifier les livres. Il se compose de dix ou treize chiffres et est vérifié par certains calculs pour garantir son exactitude. Dans cet article, nous expliquerons comment utiliser les expressions régulières PHP pour vérifier que la chaîne d'entrée est dans le format de codage ISBN correct.

Format d'encodage ISBN

L'encodage ISBN se compose de 10 ou 13 chiffres, les 9 premiers chiffres sont le code d'identification du livre et le 10ème chiffre est le code de contrôle. Pour le code ISBN à 13 chiffres, les trois premiers chiffres sont le code du pays ou de la région, suivi du code d'identification de l'éditeur, puis du code d'identification du livre et enfin du code de contrôle. Pour le code ISBN à 10 chiffres, les 9 premiers chiffres constituent également le code d'identification du livre, mais il n'y a pas de code de pays ou de région ni de code d'identification de l'éditeur, et le dernier chiffre est toujours un code de contrôle.

Règles de vérification

Les règles de vérification sont les suivantes :

Pour un code ISBN à 10 chiffres : le code du chèque est le dernier chiffre, et le Les règles de calcul sont les suivantes : Multipliez les 9 premiers chiffres par des coefficients de pondération de 1 à 9, puis additionnez ces 9 produits pour obtenir un total. Portez ensuite le reste de cette somme à 11 et soustrayez le reste de 11 pour obtenir le code de contrôle. Si le reste est 10, le code de contrôle est une lettre majuscule X.

Pour un encodage ISBN à 13 chiffres : le code de contrôle est le dernier chiffre, et la règle de calcul est la suivante : multipliez les 12 premiers chiffres par un coefficient de pondération de 1 ou 3 respectivement, puis additionnez-les 13 produits, pour obtenir une somme. Portez ensuite le reste de cette somme à 10, puis soustrayez le reste de 10 pour obtenir le code de contrôle.

PHP Regular Expression

Ce qui suit est le code de l'expression régulière PHP pour vérifier si la chaîne d'entrée est dans le format d'encodage ISBN correct.

Pour un code ISBN à 10 chiffres :

function checkISBN10($isbn) {
    if (!preg_match('/^d{9}[d|X]$/i', $isbn)) {
        return false;
    }
    $checkbit = 0;
    for ($i = 0; $i < 9; $i++) {
        $checkbit += intval($isbn{$i}) * (10 - $i);
    }
    $checkbit = ($checkbit % 11 == 0) ? 0 : 11 - ($checkbit % 11);
    return ($isbn{9} == ($checkbit == 10 ? 'X' : strval($checkbit)));
}

Pour un code ISBN à 13 chiffres :

function checkISBN13($isbn) {
    if (!preg_match('/^d{13}$/i', $isbn)) {
        return false;
    }
    $checkbit = 0;
    for ($i = 0; $i < 12; $i++) {
        $checkbit += intval($isbn{$i}) * (($i % 2 == 0) ? 1 : 3);
    }
    $checkbit = 10 - ($checkbit % 10);
    return ($isbn{12} == strval($checkbit));
}

Ces deux fonctions acceptent chacune un code ISBN en entrée , Et renvoie une valeur booléenne indiquant si le codage est un codage ISBN légal. S'il s'agit d'un encodage légal, renvoyez vrai, sinon renvoyez faux.

Ces fonctions utilisent des expressions régulières pour vérifier si l'entrée est conforme au format codé ISBN. Utilisez ensuite les règles de vérification pour calculer le code de contrôle et comparez-le avec le code de contrôle dans le codage d'entrée afin de déterminer si le codage est légal.

Conclusion

Cet article décrit comment utiliser les expressions régulières PHP pour vérifier que la chaîne d'entrée est dans le format d'encodage ISBN correct. Bien que les règles de vérification du codage ISBN soient relativement complexes, grâce à la puissante fonction des expressions régulières, nous pouvons facilement mettre en œuvre cette vérification. Les développeurs peuvent utiliser ces fonctions pour vérifier le code ISBN saisi par l'utilisateur afin de garantir son exactitude.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn