Extrae fechas ISO y fechas en español
Antes de dárselo a un modelo, saca las fechas de un texto con una expresión regular y descarta las que no existen.
Escribe extractDates(text). Devuelve un array con las fechas del texto en formato ISO YYYY-MM-DD, en el orden en que aparecen. Reconoce dos formas:
- ISO: 2026-09-28;
- en español: 4 de octubre de 2026, sin distinguir mayúsculas (1 de Diciembre de 2026). El día puede tener una o dos cifras; en la salida va siempre con dos (2026-10-04).
Descarta las fechas imposibles, como 2026-02-31 o 29 de febrero de 2025 (2025 no es bisiesto). TEXT ya contiene un ejemplo.
Retos 0/5
- Saca las tres fechas válidas del ejemplo, en orden
- Convierte fechas en español con el día a dos cifras
- Descarta fechas imposibles
- Acepta el 29 de febrero en un año bisiesto
- Un texto sin fechas devuelve un array vacío
function extractDates(text) {
const out = [];
// 1. una regex con dos alternativas: YYYY-MM-DD y "D de mes de YYYY" (flags gi)
// 2. convierte cada coincidencia en año, mes y día
// 3. quédate con ella solo si es una fecha real, con formato YYYY-MM-DD
for (const m of text.matchAll(/(\d{4})-(\d{2})-(\d{2})/g)) out.push(m[0]);
return out;
}
console.log(extractDates(TEXT));Para profundizar: la referencia de MDN →
¿Esto en producción, con tus datos? Hablemos 15 minutos →