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

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

Comentario de Nero

Realizado el Miércoles, 12 de Noviembre del 2008 a las 4:34

Muy prolijo y bien realizado, perfecto! ;)

Comentario de Daniel

Realizado el Miércoles, 26 de Noviembre del 2008 a las 21:34

Excelente codigo ;-). Me sirvio de mucho

Comentario de Santi

Realizado el Martes, 13 de Enero del 2009 a las 12:40

Excelente! Sencillo y eficaz aún sabiendo lo justo de javascript.

Comentario de Rober

Realizado el Martes, 3 de Febrero del 2009 a las 12:36

Mira que hay maneras de hacer las cosas, y sólo una la óptima. Enhorabuena por el script, tanto por sencillez como por eficacia

Comentario de Gloria

Realizado el Jueves, 2 de Abril del 2009 a las 0:20

Gracias, me sirvió de mucho! nada complicado, sencillo y al punto

Comentario de Diego

Realizado el Martes, 12 de Mayo del 2009 a las 23:13

la raja socio, ercelente kode

bueno, bonito y barato :P

saludos

Comentario de geniusdraw

Realizado el Sábado, 23 de Mayo del 2009 a las 6:20

muchas gracias por la informacion, me sirvio muchisimo, saludos

Comentario de carles

Realizado el Martes, 9 de Junio del 2009 a las 9:26

Muy bueno me fue muy util gracias.

Comentario de Kelvin

Realizado el Miércoles, 29 de Julio del 2009 a las 21:27

This code is so very well :) RECOMMENDED!!!

Comentario de Monardes

Realizado el Martes, 13 de Octubre del 2009 a las 15:28

El codigo es muy claro y preciso me ayudó mucho!!

gracias!!

Comentario de Pichel30

Realizado el Jueves, 5 de Noviembre del 2009 a las 22:40

Muchas gracias excelente codificación, muy limpia y clara

Comentario de Marvin Castillo

Realizado el Lunes, 9 de Noviembre del 2009 a las 1:55

Buen código … gracias!

Comentario de mon

Realizado el Miércoles, 2 de Diciembre del 2009 a las 18:51

Excelente!! Me ha servido de gran ayuda

Comentario de NitroBSD

Realizado el Jueves, 17 de Diciembre del 2009 a las 23:02

Gracias !!!!!!!! Me uno al comentario de Pichel30 — Codificacion muy limpia y clara –

Comentario de Tony

Realizado el Miércoles, 24 de Febrero del 2010 a las 19:57

Gracias!!..gran aporte y de mucha ayuda…informacion asi es la que necesitamos.

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 |