website stats » Validar formato de fecha con Javascript | Solo Código |

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:

JavaScript:
  1. function esFechaValida(fecha){
  2.     if (fecha != undefined && fecha.value != "" ){
  3.         if (!/^\d{2}\/\d{2}\/\d{4}$/.test(fecha.value)){
  4.             alert("formato de fecha no válido (dd/mm/aaaa)");
  5.             return false;
  6.         }
  7.         var dia  =  parseInt(fecha.value.substring(0,2),10);
  8.         var mes  =  parseInt(fecha.value.substring(3,5),10);
  9.         var anio =  parseInt(fecha.value.substring(6),10);
  10.  
  11.     switch(mes){
  12.         case 1:
  13.         case 3:
  14.         case 5:
  15.         case 7:
  16.         case 8:
  17.         case 10:
  18.         case 12:
  19.             numDias=31;
  20.             break;
  21.         case 4: case 6: case 9: case 11:
  22.             numDias=30;
  23.             break;
  24.         case 2:
  25.             if (comprobarSiBisisesto(anio)){ numDias=29 }else{ numDias=28};
  26.             break;
  27.         default:
  28.             alert("Fecha introducida errónea");
  29.             return false;
  30.     }
  31.  
  32.         if (dia>numDias || dia==0){
  33.             alert("Fecha introducida errónea");
  34.             return false;
  35.         }
  36.         return true;
  37.     }
  38. }

JavaScript:
  1. function comprobarSiBisisesto(anio){
  2. if ( ( anio % 100 != 0) && ((anio % 4 == 0) || (anio % 400 == 0))) {
  3.     return true;
  4.     }
  5. else {
  6.     return false;
  7.     }
  8. }

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.

HTML:
  1. function esFechaValida(fecha){
  2.     if (fecha != undefined && fecha.value != "" ){
  3.         if (!/^\d{2}\/\d{2}\/\d{4}$/.test(fecha.value)){
  4.             alert("formato de fecha no válido (dd/mm/aaaa)");
  5.             return false;
  6.         }
  7.         var dia  =  parseInt(fecha.value.substring(0,2),10);
  8.         var mes  =  parseInt(fecha.value.substring(3,5),10);
  9.         var anio =  parseInt(fecha.value.substring(6),10);
  10.  
  11.     switch(mes){
  12.         case 1:
  13.         case 3:
  14.         case 5:
  15.         case 7:
  16.         case 8:
  17.         case 10:
  18.         case 12:
  19.             numDias=31;
  20.             break;
  21.         case 4: case 6: case 9: case 11:
  22.             numDias=30;
  23.             break;
  24.         case 2:
  25.             if (comprobarSiBisisesto(anio)){ numDias=29 }else{ numDias=28};
  26.             break;
  27.         default:
  28.             alert("Fecha introducida errónea");
  29.             return false;
  30.     }
  31.  
  32.         if (dia>numDias || dia==0){
  33.             alert("Fecha introducida errónea");
  34.             return false;
  35.         }
  36.         return true;
  37.     }
  38. }
  39.  
  40. function comprobarSiBisisesto(anio){
  41. if ( ( anio % 100 != 0) && ((anio % 4 == 0) || (anio % 400 == 0))) {
  42.     return true;
  43.     }
  44. else {
  45.     return false;
  46.     }
  47. }
  48. </script>
  49. </head>
  50.  
  51. <input type="text" onBlur="esFechaValida(this);"/>
  52. </body>
  53.  
  54. </html>

Categoria: Javascript

5 Comentarios

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!!!!

Escribir un comentario

Puedes usar las siguientes etiquetas HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Solo Código

Solo Código es una colección de códigos de todo tipo que pueden resultar útiles para el diseño de páginas web. Está enfocado tanto para aquellos que son expertos, como para aquellos principiantes que quieren encontrar recursos útiles, o no saben implementar determinadas funciones en sus webs. No olvides que Solo Código es un blog de Informática Práctica, donde tenemos otras secciones interesantes como:
| Tutoriales | Trucos | Software | Links | Buscar |