Cómo funciona el patrón
| Parte | Significado |
|---|---|
4\d{12}(?:\d{3})? | Visa: empieza por 4, con 13 o 16 dígitos |
5[1-5]\d{14} | Mastercard: 51–55, con 16 dígitos |
3[47]\d{13} | American Express: 34 o 37, con 15 dígitos |
Ejemplos 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;
Notas y limitaciones
Quita los espacios y guiones antes de probar, y después ejecuta una suma de verificación Luhn: la regex solo comprueba la forma. Mastercard también emite números 2221–2720; añade |2(?:2[2-9]|[3-6]\d|7[01]|720)\d{12} para cubrirlos. Nunca registres ni almacenes números de tarjeta en texto plano. Los ejemplos son números de prueba estándar.
Probador de expresiones regulares
Escribe un patrón y observa cómo se resaltan las coincidencias en tiempo real en tu texto de prueba.