Como o padrão funciona
| Parte | Significado |
|---|---|
4\d{12}(?:\d{3})? | Visa: começa com 4, seguido de 13 ou 16 dígitos |
5[1-5]\d{14} | Mastercard: 51–55, 16 dígitos |
3[47]\d{13} | American Express: 34 ou 37, 15 dígitos |
Exemplos de código
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;
Observações e limitações
Remova espaços e traços antes de testar e, em seguida, execute uma verificação de soma Luhn — a regex só verifica o formato. A Mastercard também emite números 2221–2720; adicione |2(?:2[2-9]|[3-6]\d|7[01]|720)\d{12} para cobri-los. Nunca registre nem armazene números de cartão reais. Os exemplos são números de teste padrão.
Testador de Expressões Regulares
Digite um padrão e veja as correspondências serem destacadas em tempo real no seu texto de teste.