none
validar fecha mediante el uso de una expresion regular RRS feed

  • Pregunta

  • hola : 

    tengngo esta funcion javascript para validar en el keypress de un tetxbox la fecha :

    function ValidarFecha(string){
         var ExpReg  = /^([0][1-9]|[12][0-9]|3[01])(\/|-)([0][1-9]|[1][0-2])\2(\d{4})$/;
         return (ExpReg.test(string));
    }

    Lo que no se , es como asignarle , en la linea siguiente de codigo ,en el parametro string el string del textbox que estoy ingresando 

      <asp:TextBox ID="TxtfechaAlta" runat="server" OnKeyPress="return ValidarFecha();" style="z-index: 1; left: 103px; top: 232px; ; width: 89px; ">

    gracias 

    lunes, 9 de octubre de 2017 2:02

Respuestas

  • ahi lo pude corregir :

    la manera correcta era : 

    function ValidarFecha(string){

        var ExpReg = /^([0][1-9]|[12][0-9]|3[01])(\/|-)([0][1-9]|[1][0-2])\2(\d{4})$/;

         if  (ExpReg.test(string)) 
             alert( "fecha correcta");

         else 
             alert("fecha incorrecta");
         
        
      }

    saludos 

    martes, 10 de octubre de 2017 3:21

Todas las respuestas

  • hola : 

    tengngo esta funcion javascript para validar en el keypress de un tetxbox la fecha :

    function ValidarFecha(string){
         var ExpReg  = /^([0][1-9]|[12][0-9]|3[01])(\/|-)([0][1-9]|[1][0-2])\2(\d{4})$/;
         return (ExpReg.test(string));
    }

    Lo que no se , es como asignarle , en la linea siguiente de codigo ,en el parametro string el string del textbox que estoy ingresando 

      <asp:TextBox ID="TxtfechaAlta" runat="server" OnKeyPress="return ValidarFecha();" style=" ; width: 89px; ">

    gracias 

    Hola ciclon25,

    si aun no has resuelto el problema, intenta de esta manera:

    OnKeyPress="return ValidarFecha(value);"

    aun que te diré que el valor pasado a la función no incluirá la ultima tecla presionada para validar incluyendo la ultima tecla tendrás que hacer referencia a las variable "event" la cual contendrá la ultima tecla presionada.

    ejemplo:

        function ValidarFecha(string) {
            var validar = string + event.char;
            alert(validar);
        }

    Salu2,


    Marvin E. Pineda

      ComboBoxMultiColumns

     NetBarControl

      TextEditor

    lunes, 9 de octubre de 2017 14:01
    Moderador
  • Si no me equivoco (no lo he probado) debería funcionar poniendo ValidarFecha(this.value).

    Pero antes de lanzarte a escribirlo, piensa que lo que estás haciendo no va a funcionar nada bien. Cada vez que pulses una tecla en el textbox se disparará la validación, y todo el rato dará un error hasta que se llegue a teclear último carácter, porque mientras la fecha solo esté tecleada parcialmente no cumplirá la expresión regular. Así que este tipo de validación solo es adecuado para ponerlo en el evento blur (que se dispara cuando se abandona el textbox, momento en el que presumiblemente se ha terminado de escribir la fecha completa), pero no en el keyPress.

    lunes, 9 de octubre de 2017 14:06
  • igual, es lo mismo....

    Marvin E. Pineda

      ComboBoxMultiColumns

     NetBarControl

      TextEditor

    lunes, 9 de octubre de 2017 14:21
    Moderador
  • Pero antes de lanzarte a escribirlo, piensa que lo que estás haciendo no va a funcionar nada bien. Cada vez que pulses una tecla en el textbox se disparará la validación, y todo el rato dará un error hasta que se llegue a teclear último carácter, porque mientras la fecha solo esté tecleada parcialmente no cumplirá la expresión regular. Así que este tipo de validación solo es adecuado para ponerlo en el evento blur (que se dispara cuando se abandona el textbox, momento en el que presumiblemente se ha terminado de escribir la fecha completa), pero no en el keyPress.

    correcto, pero como la pregunta es como pasar un parametro a la funcion...

    Marvin E. Pineda

      ComboBoxMultiColumns

     NetBarControl

      TextEditor

    lunes, 9 de octubre de 2017 14:22
    Moderador
  • igual, es lo mismo....
    Lo siento, Marvin. Me doy cuenta de que he contestado algo que ya habías dicho tú, pero en el momento de escribirlo no lo sabía. El problema del foro es que si pinchas en "responder", y mientras estás tecleando la respuesta resulta que alguien más también envía otra respuesta, pues no te enteras. No hay nada en el foro que diga "ojo, que ya hay alguien que está escribiendo una respuesta para este hilo". El resultado es que cuando al final dices "enviar", a veces se duplica una misma respuesta que mientras tanto ya había introducido alguien más. Básicamente, es un "accidente" debido al modo de funcionamiento del foro, la duplicidad no ha sido hecha aposta.
    lunes, 9 de octubre de 2017 16:14
  • no te preocupes. me ha pasado también, coincidir en el mismo momento al responder...

    Salu2,


    Marvin E. Pineda

      ComboBoxMultiColumns

     NetBarControl

      TextEditor

    lunes, 9 de octubre de 2017 16:17
    Moderador
  • Estimado Alberto,

    Permítame resaltar la caballerosidad que tiene usted para responder, corregir y aconsejar; esto no se aprende en un foro, ni se aprende con estudios. Gracias por dejarme compartir y aprender de sus respuestas en esta comunidad.

    Saludos


    Brayan De la Cruz
    Lima - Perú

    lunes, 9 de octubre de 2017 16:24
  • desde ya mil gracias a todos por las rtas y por compartir los conocimientos con los que somos novatos en ASP NET.

    puse la funcion javascript de esta manera:

    function ValidarFecha(string){
      
        alert( string )
         var ExpReg = /^([0][1-9]|[12][0-9]|3[01])(\/|-)([0][1-9]|[1][0-2])\2(\d{4})$/;
         alert( ExpReg.test(string) )
         if ((ExpReg.test(string)) == false) {
             Alert("fecha incorrecta");

         }
         else {
             return true;
         }
      }

    y aplicando lo que me explicaron puse:

    onblur="return ValidarFecha(this.value);" 

    Poniendo alerts dentro de la funcion veo que valida correctamente tanto si la fecha es erronea o correcta 

    en su formato . Lo que no puedo lograr es que me salga el mensaje "fecha incorrecta " y que el foco vuelva a setearse en el textbox. desde ya gracias . 

    lunes, 9 de octubre de 2017 23:21
  • ahi lo pude corregir :

    la manera correcta era : 

    function ValidarFecha(string){

        var ExpReg = /^([0][1-9]|[12][0-9]|3[01])(\/|-)([0][1-9]|[1][0-2])\2(\d{4})$/;

         if  (ExpReg.test(string)) 
             alert( "fecha correcta");

         else 
             alert("fecha incorrecta");
         
        
      }

    saludos 

    martes, 10 de octubre de 2017 3:21