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
}