Avec le développement rapide de l'économie moderne, les transactions financières deviennent de plus en plus fréquentes. En tant que moyen de paiement courant, les cartes bancaires doivent garantir leur sécurité et leur exactitude. Il est donc très important de vérifier l’exactitude du numéro de carte bancaire lors des transactions par carte bancaire. Cet article explique comment utiliser les expressions régulières PHP pour vérifier si la chaîne d'entrée est au bon format de numéro de carte bancaire.
Les numéros de carte bancaire sont généralement vérifiés grâce à l'algorithme de Luhn, ce qui signifie pondérer chaque numéro du numéro de carte un par un, additionner les résultats, et enfin prendre le modulo. Si le résultat est 0, cela signifie que le format du numéro de carte bancaire est correct. L'opération spécifique est la suivante :
1 Comptez de droite à gauche, le dernier chiffre du numéro de carte est le premier, allez vers la gauche, multipliez chaque chiffre par 2, si le chiffre est multiplié par 2 est supérieur à 10, puis divisez-le en deux nombres et additionnez les deux nombres.
2. Additionnez tous les nombres multipliés par 2.
3. En comptant de droite à gauche, le dernier chiffre du numéro de carte est le premier, et en allant vers la gauche, multipliez chaque chiffre par 1 ou pas, et additionnez les résultats.
4. Additionnez les résultats de l'étape 2 et de l'étape 3. Si le résultat est divisible par 10, le format du numéro de carte bancaire est correct.
Le processus de vérification ci-dessus peut être facilement réalisé à l'aide d'expressions régulières PHP. Les étapes spécifiques de mise en œuvre sont les suivantes :
Étape 1 : Formater le numéro de carte bancaire
Le numéro de carte bancaire ne peut contenir que des chiffres, vous devez donc utiliser la fonction preg_replace de PHP pour remplacer les caractères non numériques dans la chaîne avec des espaces.
$bank_card_number = preg_replace('/D/','',$bank_card_number);
Étape 2 : Vérifier la longueur de la chaîne
La longueur du numéro de carte bancaire est généralement de 16 ou 19 bits, vous devez donc utiliser la fonction strlen de PHP pour vérifier si la longueur de la chaîne est de 16 ou 19.
if(strlen($bank_card_number) !== 16 && strlen($bank_card_number) !== 19){
// 长度不正确
}
Steps 3 : Implémenter la vérification de l'algorithme de Luhn
Utilisez la fonction preg_match de PHP combinée avec des expressions régulières pour implémenter la vérification de l'algorithme de Luhn.
$len = strlen($bank_card_number);
$sum = 0;
for($i = 0; $i < $len; $i++){#🎜 🎜#
$value = intval($bank_card_number[$len - $i - 1]); $sum += (($i % 2) !== 0) ? (($value * 2) >= 10 ? ($value * 2 - 9) : ($value * 2)) : $value;
if(($sum % 10) !== 0){
// 格式不正确
$bank_card_number = preg_replace('/D/','',$bank_card_number); if(strlen($bank_card_number) !== 16 && strlen($bank_card_number) !== 19){ return false; } $len = strlen($bank_card_number); $sum = 0; for($i = 0; $i < $len; $i++){ $value = intval($bank_card_number[$len - $i - 1]); $sum += (($i % 2) !== 0) ? (($value * 2) >= 10 ? ($value * 2 - 9) : ($value * 2)) : $value; } if(($sum % 10) !== 0){ return false; } return true;
if(verify_bank_card_number($bank_card_number)){
echo '银行卡号格式正确';
echo '银行卡号格式不正确';
Grâce aux étapes ci-dessus, nous pouvons utiliser la fonction preg_match des expressions régulières PHP pour vérifier rapidement si le numéro de carte bancaire saisi par l'utilisateur est correct. Cela peut efficacement éviter des problèmes tels que l'échec de la transaction causé par une saisie incorrecte des numéros de carte bancaire.
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!