Foros del Web » Programando para Internet » Javascript »

Problema con expresion regular fecha

Estas en el tema de Problema con expresion regular fecha en el foro de Javascript en Foros del Web. Hola tengo una expresion regular que intento modificar para que acepte el foemato de la fecha que se esta introduciendo. el formato vendria siendo 27/8/2009 ...
  #1 (permalink)  
Antiguo 27/08/2009, 09:54
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Problema con expresion regular fecha

Hola tengo una expresion regular que intento modificar para que acepte el foemato de la fecha que se esta introduciendo.

el formato vendria siendo 27/8/2009 (mes/dia/año) este es la expresion:

Código js:
Ver original
  1. var reg=/(?:0[1-9]|[12][0-9]|3[01])\/(?:0[1-9]|1[0-2])\/(?:20\d{2})/;

entonces esta expresion checa la fecha pero de esta forma 27/08/2009 y asi no me sirve por que en mes y dia puede ser solo un digito y no dos, pfff me estoy confundiendo con esto, alguien me puede echar una mano con la expresion?

saludos!
  #2 (permalink)  
Antiguo 27/08/2009, 12:47
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Problema con expresion regular fecha

Hola

Prueba con esta función

Código javascript:
Ver original
  1. function validaFecha(strValue) {
  2. var objRegExp = /^\d{1,2}\1\d{1,2}\1\d{4}$/
  3.  
  4.   if(!objRegExp.test(strValue))
  5.     return false;
  6.   else{
  7.     var strSeparator = strValue.substring(2,3)
  8.     var arrayDate = strValue.split(strSeparator);
  9.  
  10.     var arrayLookup = { '01' : 31,'03' : 31, '04' : 30,'05' : 31,'06' : 30,'07' : 31,'08' : 31,'09' : 30,'10' : 31,'11' : 30,'12' : 31}
  11.     var intDay = parseInt(arrayDate[0],10);
  12.  
  13.  
  14.     if(arrayLookup[arrayDate[1]] != null) {
  15.       if(intDay <= arrayLookup[arrayDate[1]] && intDay != 0)
  16.         return true;
  17.     }
  18.    
  19.    
  20.     var intMonth = parseInt(arrayDate[1],10);
  21.     if (intMonth == 2) {
  22.        var intYear = parseInt(arrayDate[2]);
  23.        if (intDay > 0 && intDay < 29) {
  24.            return true;
  25.        }
  26.        else if (intDay == 29) {
  27.          if ((intYear &#37; 4 == 0) && (intYear % 100 != 0) ||
  28.              (intYear % 400 == 0)) {
  29.              return true;
  30.          }  
  31.        }
  32.     }
  33.   }  
  34.   return false;
  35. }

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 27/08/2009, 13:03
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema con expresion regular fecha

Gracias por la respuesta, lo voy a probar!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:27.