Regex para fecha (DD/MM/YYYY)

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

Actualizado el

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

Cómo funciona el patrón

ParteSignificado
(?:0[1-9]|[12]\d|3[01])Día 01–31 primero (orden británico, europeo, indio y australiano)
\/Una barra
(?:0[1-9]|1[0-2])Mes 01–12
\d{4}$Año de cuatro dígitos

Ejemplos de código

JavaScript

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

Python

import re

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

PHP

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

Notas y limitaciones

Cambia \/ por [\/.-] para aceptar también 30.10.2026 y 30-10-2026. No se comprueban los días de cada mes.

Preguntas frecuentes

¿Cuál es el regex para fecha (DD/MM/YYYY)?
/^(?:0[1-9]|[12]\d|3[01])\/(?:0[1-9]|1[0-2])\/\d{4}$/ — coincide con toda la cadena. Consulta la tabla de arriba para ver qué hace cada parte.
¿Qué ejemplos coinciden?
De los ejemplos probados, coinciden estos: 30/10/2026, 01/12/2000, 31/01/1999. Los demás no.
¿Cómo pruebo este 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.