Regex pour numéro de carte de crédit

Utilisez /^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})$/ pour vérifier qu'une chaîne entière est un numéro de carte de crédit valide. Chaque exemple ci-dessous est testé avec ce motif, et vous pouvez l'ouvrir dans le testeur de Regex avec les exemples préchargés.

Mis à jour le

/^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})$/
Ouvrir dans le testeur de Regex
SaisieRésultat
4111111111111111✓ Correspondance
5500000000000004✓ Correspondance
378282246310005✓ Correspondance
1234567812345678✗ Aucune correspondance
4111 1111 1111 1111✗ Aucune correspondance
411111111111111✗ Aucune correspondance

Fonctionnement du motif

ÉlémentSignification
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 false

Python

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.

Questions fréquentes

Quelle est la regex pour un numéro de carte de crédit ?
/^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})$/ — elle correspond à la chaîne entière. Consultez le tableau ci-dessus pour le rôle de chaque partie.
Quels exemples correspondent ?
Parmi les exemples testés, ceux-ci correspondent : 4111111111111111, 5500000000000004, 378282246310005. Les autres ne correspondent pas.
Comment tester cette regex ?
Cliquez sur « Ouvrir dans le testeur de Regex » : le motif, les indicateurs et le texte d'exemple se chargent automatiquement, et les correspondances se surlignent pendant que vous modifiez.