Regex para fecha (MM/DD/YYYY)

Usa /^(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12]\d|3[01])\/\d{4}$/ para comprobar que una cadena completa es una fecha válida (MM/DD/YYYY). Cada ejemplo de abajo se ha probado con el patrón, y puedes abrirlo en el Probador de Regex con las muestras ya cargadas.

Actualizado el

/^(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12]\d|3[01])\/\d{4}$/
Abrir en el Probador de Regex
EntradaResultado
10/30/2026✓ Coincide
01/01/2000✓ Coincide
12/31/1999✓ Coincide
13/01/2026✗ No coincide
1/5/2026✗ No coincide
30/10/2026✗ No coincide
10-30-2026✗ No coincide

Cómo funciona el patrón

ParteSignificado
(?:0[1-9]|1[0-2])Mes 01–12 primero (orden de EE. UU.)
\/Una barra (escapada para literales de JavaScript)
(?:0[1-9]|[12]\d|3[01])Día 01–31
\d{4}$Año de cuatro dígitos al final

Ejemplos de código

JavaScript

const re = /^(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12]\d|3[01])\/\d{4}$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?:0[1-9]|1[0-2])/(?:0[1-9]|[12]\d|3[01])/\d{4}', value))

PHP

preg_match('/^(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12]\d|3[01])\/\d{4}$/', $value) === 1;

Notas y limitaciones

Para aceptar también meses y días de un solo dígito, cambia 0[1-9] por 0?[1-9] en ambos lugares. No se comprueba cuántos días tiene cada mes, así que valida la fecha después.

Preguntas frecuentes

¿Cuál es la regex para fecha (MM/DD/YYYY)?
/^(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12]\d|3[01])\/\d{4}$/ — coincide con la cadena completa. Consulta la tabla de arriba para ver qué hace cada parte.
¿Qué ejemplos coinciden?
De los ejemplos probados, estos coinciden: 10/30/2026, 01/01/2000, 12/31/1999. Los demás no.
¿Cómo pruebo esta regex?
Haz clic en “Abrir en el Probador de Regex”: el patrón, los flags y el texto de muestra se cargan automáticamente, y las coincidencias se resaltan mientras editas.