Fonctionnement du motif
| Élément | Signification |
|---|---|
4\d{12}(?:\d{3})? | Visa : commence par 4, suivi de 13 ou 16 chiffres |
5[1-5]\d{14} | Mastercard : 51 à 55, 16 chiffres |
3[47]\d{13} | American Express : 34 ou 37, 15 chiffres |
Exemples de code
JavaScript
const re = /^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})', value))PHP
preg_match('/^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})$/', $value) === 1;
Remarques et limites
Supprimez les espaces et les tirets avant le test, puis appliquez une somme de contrôle de Luhn : la regex ne vérifie que la forme. Mastercard attribue aussi des numéros de 2221 à 2720 ; ajoutez |2(?:2[2-9]|[3-6]\d|7[01]|720)\d{12} pour les couvrir. Ne journalisez ni ne stockez jamais les numéros de carte en clair. Les exemples sont des numéros de test standard.
Testeur d’expressions régulières
Saisissez un modèle et observez les correspondances s'afficher en temps réel dans votre texte de test.