Rexact
Cheatsheet

Regex numéro de carte American Express

American Express documente ses numéros dans son guide marchand : ils commencent par 34 ou 37 et comptent 15 chiffres (groupés 4-6-5). La forme est donc très simple, et la tentative de regular-expressions.info (identique à celle de validator.js) est déjà exacte. Les autres relues sont moins sûres : Cleave.js et php-credit-card-validator ne testent que le préfixe, et le motif de l'OWASP écrit « 3[4,7] », une classe qui accepte aussi la virgule, sans ancre de début : « 3,1234567890123 » passe. Voici le motif exact, avec un corpus plus rigoureux, comparé à ces tentatives.

/^3[47][0-9]{13}$/
passe 22/22 cas

Comparatif des patterns existants

Implémentation

const re = new RegExp("^3[47][0-9]{13}$", "");
re.test(input);

Limites

  • Valide seulement la FORME (préfixe et longueur) : ni la clé de Luhn (le corpus contient un numéro de forme correcte et de clé fausse qui passe), ni l'existence du compte, ni la date d'expiration ou le CVV. Les espaces et tirets sont refusés : normalisez avant validation.
  • Le code de sécurité (CID, 4 chiffres au recto) n'est pas couvert. Le groupement 4-6-5 est une présentation : le motif travaille sur les chiffres seuls.
  • Ne stockez ni ne journalisez de vrais numéros de carte (PCI DSS) ; n'utilisez que des numéros de test dans vos tests.

Pages liées