Validar formato de fecha con Javascript
Escrito por J.F. el Lunes, 10 de Diciembre del 2007 a las 20:20
Un ejemplo, mediante el uso de 2 funciones, para validar que el formato de una fecha sea válido (mm/dd/aaaa) con Javascript. Tan solo necesita recibir el objeto, y al salir del campo valida si la fecha tiene un formato correcto o no. Las funciones Javascript a usar son las siguientes:
-
function esFechaValida(fecha){
-
if (fecha != undefined && fecha.value != "" ){
-
if (!/^\d{2}\/\d{2}\/\d{4}$/.test(fecha.value)){
-
alert("formato de fecha no válido (dd/mm/aaaa)");
-
return false;
-
}
-
var dia = parseInt(fecha.value.substring(0,2),10);
-
var mes = parseInt(fecha.value.substring(3,5),10);
-
var anio = parseInt(fecha.value.substring(6),10);
-
-
switch(mes){
-
case 1:
-
case 3:
-
case 5:
-
case 7:
-
case 8:
-
case 10:
-
case 12:
-
numDias=31;
-
break;
-
case 4: case 6: case 9: case 11:
-
numDias=30;
-
break;
-
case 2:
-
if (comprobarSiBisisesto(anio)){ numDias=29 }else{ numDias=28};
-
break;
-
default:
-
alert("Fecha introducida errónea");
-
return false;
-
}
-
-
if (dia>numDias || dia==0){
-
alert("Fecha introducida errónea");
-
return false;
-
}
-
return true;
-
}
-
}
-
function comprobarSiBisisesto(anio){
-
if ( ( anio % 100 != 0) && ((anio % 4 == 0) || (anio % 400 == 0))) {
-
return true;
-
}
-
else {
-
return false;
-
}
-
}
La segunda tan sólo verifica si el año es bisiesto, para permitir en Febrero poner 28 ó 29 días. Aquí tienes un código de ejemplo, que al salir del campo verifica si lo escrito en el campo de texto tiene el formato de fecha dd/mm/aaaa.
-
function esFechaValida(fecha){
-
if (fecha != undefined && fecha.value != "" ){
-
if (!/^\d{2}\/\d{2}\/\d{4}$/.test(fecha.value)){
-
alert("formato de fecha no válido (dd/mm/aaaa)");
-
return false;
-
}
-
var dia = parseInt(fecha.value.substring(0,2),10);
-
var mes = parseInt(fecha.value.substring(3,5),10);
-
var anio = parseInt(fecha.value.substring(6),10);
-
-
switch(mes){
-
case 1:
-
case 3:
-
case 5:
-
case 7:
-
case 8:
-
case 10:
-
case 12:
-
numDias=31;
-
break;
-
case 4: case 6: case 9: case 11:
-
numDias=30;
-
break;
-
case 2:
-
if (comprobarSiBisisesto(anio)){ numDias=29 }else{ numDias=28};
-
break;
-
default:
-
alert("Fecha introducida errónea");
-
return false;
-
}
-
-
if (dia>numDias || dia==0){
-
alert("Fecha introducida errónea");
-
return false;
-
}
-
return true;
-
}
-
}
-
-
function comprobarSiBisisesto(anio){
-
if ( ( anio % 100 != 0) && ((anio % 4 == 0) || (anio % 400 == 0))) {
-
return true;
-
}
-
else {
-
return false;
-
}
-
}
-
</script>
-
</head>
-
-
<input type="text" onBlur="esFechaValida(this);"/>
-
</body>
-
-
</html>
Categoria: Javascript
- Añadir este post a
- Del.icio.us -
- Meneame -
- Digg -
- Webeame
Entradas relacionadas
Comentario de Manuel Salazar
Realizado el Domingo, 18 de Mayo del 2008 a las 0:58
¡Excelente!, era lo que necesitaba, muy limpio y profesional, me sirvió mucho, felicidades y muchas GRACIAS.
Comentario de J.F.
Realizado el Domingo, 25 de Mayo del 2008 a las 13:37
De nada, un saludo.
Comentario de Enrique Arriaga
Realizado el Viernes, 20 de Junio del 2008 a las 18:29
Muchas gracias. Muy útil.
Felicidades.
Comentario de Alejandro
Realizado el Miércoles, 6 de Agosto del 2008 a las 9:23
necesitaría saber como validar varias fechas a la vez en un formulario, tengo 6 fechas y desearía validarlas.
Desde ya muchas gracias por todo.
Comentario de Alejandro
Realizado el Miércoles, 6 de Agosto del 2008 a las 9:36
Gracias recien me doy cuenta de la forma!!!!
