Cómo funciona el patrón
| Parte | Significado |
|---|---|
^\d{4} | Año de cuatro dígitos |
(?:0[1-9]|1[0-2]) | Mes 01–12 |
(?:0[1-9]|[12]\d|3[01]) | Día 01–31 |
- | Guiones literales entre las partes |
Ejemplos de código
JavaScript
const re = /^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])', value))PHP
preg_match('/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/', $value) === 1;
Notas y limitaciones
Una regex puede comprobar el formato, pero no el calendario: 2026-02-30 pasa la validación. Tras la coincidencia, confírmalo con una librería de fechas o new Date(value) y compara las partes. Este es el formato ISO 8601 que usa <input type="date">.
Probador de expresiones regulares
Escribe un patrón y observa cómo se resaltan las coincidencias en tiempo real en tu texto de prueba.