Rexact
Cheatsheet

Regex numéro de carte JCB

D'après le bulletin Discover Global Network (février 2017), la plage JCB va de 3528 à 3589 avec 16 à 19 chiffres. Les tentatives relues sont plus larges ou plus étroites : regular-expressions.info accepte tout préfixe 35xxx sur 16 chiffres seulement (ainsi que les anciens 2131 et 1800 à 15 chiffres), Cleave.js et php-credit-card-validator ne testent que « 35 ». Voici un motif borné à 3528-3589 avec 16 à 19 chiffres, comparé à ces tentatives.

/^35(?:2[89]|[3-8][0-9])[0-9]{12,15}$/
passe 23/23 cas

Comparatif des patterns existants

Implémentation

const re = new RegExp("^35(?:2[89]|[3-8][0-9])[0-9]{12,15}$", "");
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.
  • Les anciennes plages JCB 2131/1800 (15 chiffres) sont exclues ; le bulletin signale en outre que 3528-3589 n'est activable qu'aux États-Unis par le réseau Discover. D'autres bibliothèques citent encore d'anciennes plages JCB (3088-3094, 3337-3349 notamment) : non vérifiées ici, non incluses.
  • 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