
Validador Regex de Fechas en JavaScript
Pruebe y valide fácilmente formatos de fecha como DD/MM/YYYY, MM-DD-YYYY o marcas de tiempo ISO 8601 con el Validador Regex de Fechas en JavaScript. Ya sea que esté construyendo formularios, analizando logs o limpiando datos en JavaScript, esta herramienta le ayuda a garantizar fechas precisas y correctamente formateadas. Combine esta herramienta con el Tester Regex de JavaScript para experimentar con patrones, o combínela con el Validador Regex de Email en JavaScript y el Validador Regex de Direcciones IP en JavaScript para validar datos de usuario completos.
Validador Regex de Fechas en JavaScript - Documentación
¿Qué es un Regex de Fechas?
En JavaScript, una expresión regular (regex) para fechas ayuda a identificar y validar si una cadena coincide con un formato de fecha específico. Ya sea que esté construyendo formularios, filtros de datos o logs, validar fechas garantiza que los usuarios ingresen datos correctamente y previene errores posteriores.
Un regex de fechas puede coincidir con patrones como:
DD/MM/YYYY
MM-DD-YYYY
YYYY-MM-DD
Marcas de tiempo ISO 8601 como 2023-06-05T12:30:00Z
Patrón Regex en JavaScript para Validación de Fechas
Un regex comúnmente usado para la validación básica DD/MM/YYYY:
/^(0[1-9]|[12][0-9]|3[01])[\/\-](0[1-9]|1[0-2])[\/\-](19|20)\d\d$/Desglose:
^(0[1-9]|[12][0-9]|3[01]): Valida el día (01-31)[\/\-]: Coincide con / o - como separador(0[1-9]|1[0-2]): Valida el mes (01-12)(19|20)\d\d$: Valida el año (1900-2099)
Cómo Validar una Fecha con Regex en JavaScript
function isValidDate(dateString) { const dateRegex = /^(0[1-9]|[12][0-9]|3[01])[\/\-](0[1-9]|1[0-2])[\/\-](19|20)\d\d$/; return dateRegex.test(dateString); }
console.log(isValidDate("25/12/2024")); // true console.log(isValidDate("2024-12-25")); // false
Si necesita convertir una cadena DD/MM/YYYY en un objeto Date de JavaScript, primero reformatéela a YYYY/MM/DD:
let dateInput = "15/05/2019"; // formato DD/MM/YYYYlet dateArray = dateInput.split("/");
let newDate =
${dateArray[2]}/${dateArray[1]}/${dateArray[0]};
console.log(newDate); // 2019/05/15 (YYYY/MM/DD)
Ahora puede usar newDate con el constructor Date de JavaScript:
let jsDate = new Date(newDate);
console.log(jsDate); // Genera un objeto Date válidoCómo Verificar si una Cadena es una Fecha Válida en JavaScript
function isDateValid(dateStr) { return !isNaN(new Date(dateStr)); }// DD/MM/YYYY (no reconocido por Date) console.log(isDateValid("15/05/2019")); // false
// MM/DD/YYYY console.log(isDateValid("05/15/2019")); // true
// YYYY/MM/DD console.log(isDateValid("2019/05/15")); // true
Tenga en cuenta que el constructor Date entiende formatos como MM/DD/YYYY y YYYY/MM/DD, pero no DD/MM/YYYY. Si la cadena no representa una fecha real, devolverá un objeto "Invalid Date" que isNaN() detectará.
¿Cuándo usar cada enfoque?
Validación con regex: ideal para imponer un patrón de entrada específico.
Validación con objeto Date: mejor para verificar si la fecha realmente existe y es reconocida por JavaScript.
Convertir Posiciones de Día y Año en Cadenas de Fecha
Para convertir de DD/MM/YYYY a YYYY/MM/DD en JavaScript:
let originalDate = "15/05/2019"; // DD/MM/YYYY let parts = originalDate.split("/"); // Reorganizado a YYYY/MM/DD let convertedDate =${parts[2]}/${parts[1]}/${parts[0]};
console.log(convertedDate); // Resultado: 2019/05/15
Convertir una Fecha al Formato DD/MM/YYYY en JavaScript
function formatDateToDDMMYYYY(dateInput) { const dateObj = new Date(dateInput); if (isNaN(dateObj)) return "Fecha inválida";let day = dateObj.getDate(); let month = dateObj.getMonth() + 1; // Los meses comienzan en cero const year = dateObj.getFullYear();
day = day < 10 ? "0" + day : day; month = month < 10 ? "0" + month : month;
return
${day}/${month}/${year}; }
console.log(formatDateToDDMMYYYY("2019/05/15")); // "15/05/2019"
Nota: El método getMonth() retorna los meses en base cero, por lo que enero es 0 y diciembre es 11. Por eso se debe agregar 1 para obtener el valor correcto.
Validación de Fechas con isNaN() en JavaScript
Puede usar isNaN() junto con new Date() para verificar si una cadena de fecha resulta en una fecha válida:
function isDateValid(dateStr) {
return !isNaN(new Date(dateStr));
}console.log(isDateValid("15/05/2019")); // false (DD/MM/YYYY no es reconocido nativamente)
console.log(isDateValid("05/15/2019")); // true (MM/DD/YYYY es válido en JS)
console.log(isDateValid("2019/05/15")); // true (YYYY/MM/DD también es válido)Comparación de Fechas en JavaScript
Para verificar si una fecha es anterior o posterior a otra en JavaScript:
const firstDate = new Date('2024-06-01'); const secondDate = new Date('2024-06-05');
console.log(firstDate < secondDate); // true console.log(firstDate > secondDate); // false
Para comprobar la igualdad, use el método .getTime():
console.log(firstDate.getTime() === secondDate.getTime()); // falseOtros Patrones Útiles:
ISO 8601 (ej. 2024-06-05T12:30:00Z):
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/Formato MM-DD-YYYY:
/^(0[1-9]|1[0-2])--\d\d$/¿Por Qué Ajustar el Mes con getMonth() en JavaScript?
Recuerde que getMonth() cuenta los meses desde cero. Si desea mostrar el rango habitual de 1 a 12, debe agregar 1. Ejemplo para formatear una fecha como MM-DD-YYYY:
const date = new Date();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
const year = date.getFullYear();
const formattedDate = ${month}-${day}-${year};Cómo Determinar si una Fecha es Pasada o Futura en JavaScript
const inputDate = new Date('2023-08-20'); const today = new Date();
if (inputDate < today) { console.log('La fecha ingresada está en el pasado.'); } else { console.log('La fecha ingresada está en el futuro.'); }
Casos de Uso Reales
Validación de Formularios: Garantice que los usuarios ingresen fechas de nacimiento, reservas o plazos válidos.
Análisis de Logs: Extraiga cadenas de fecha válidas de logs de servidor con el Tester Regex de JavaScript.
Limpieza de Datos: Use este validador para depurar y estandarizar formatos de fecha en herramientas de procesamiento de datos.
Combínelo con Estas Herramientas
Tester Regex de JavaScript: Cree y depure patrones de fecha complejos rápidamente
Validador Regex de Email en JavaScript: Valide credenciales de usuario junto con entradas de fecha
Validador Regex de Direcciones IP en JavaScript: Combine con logs de marcas de tiempo para datos de red
Validador Regex de Contraseñas en JavaScript: Use con formularios de creación de cuentas o registro
Consejos Profesionales
Use
String.prototype.match()o.test()para comprobaciones rápidas de regex en JavaScript.Valide siempre la lógica de fecha por separado (por ejemplo, el 30 de febrero es inválido aunque el regex lo permita).
Use ISO 8601 para APIs y coherencia con bases de datos.
Use grupos sin captura (como
(?:...)) cuando no necesite extraer partes de la coincidencia.Por rendimiento, compile el regex una sola vez y reutilícelo en sus funciones de validación.
Frequently Asked Questions
¿El regex de JavaScript puede detectar fechas inválidas como 31/02/2023?
¿Debo usar barras o guiones como separadores en el regex de fechas?
¿Puedo validar marcas de tiempo ISO con regex?
¿Este regex es reutilizable en sistemas backend como Node.js?
¿Puedo usar esta herramienta para probar patrones de fecha en otros formatos?
Related Articles



¡Pruebe sus APIs hoy!
Escriba en español claro, Qodex lo convierte en pruebas seguras y listas para ejecutar.



