function isDate(dateStr)
{
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{2,4})$/; var matchArray = dateStr.match(datePat); // Formato correcto?
if (matchArray == null)
{ alert("Formato de fecha incorrecto."); return false;
}
day = matchArray[1];
month = matchArray[3];
year = matchArray[5];
if (month < 1 || month > 12)
{ // Comprueba el mes alert("El mes debe estar entre 1 y 12."); return false;
}
if (day < 1 || day > 31)
{ alert("El día debe estar entre 1 y 31."); return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31)
{ alert("El mes "+month+" no tiene 31 días") return false;
}
if (month == 2)
{ // años bisiestos 29th var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day==29 && !isleap))
{ alert("Febrero del " + year + " no tiene " + day + " dias"); return false;
}
}
return true; // fecha valida
}