Foros del Web » Programando para Internet » Javascript »

Validar un textfield con formato #-####-####

Estas en el tema de Validar un textfield con formato #-####-#### en el foro de Javascript en Foros del Web. Hola a todos, necesito validar un campo de texto de manera que acepte un número en formato #-####-#### por ejemlo 2-0458-5621. Gracias por su ayuda...
  #1 (permalink)  
Antiguo 28/11/2003, 18:03
Avatar de v_i_n_i_c_i_o  
Fecha de Ingreso: noviembre-2003
Ubicación: Costa Rica
Mensajes: 422
Antigüedad: 20 años, 5 meses
Puntos: 0
Validar un textfield con formato #-####-####

Hola a todos, necesito validar un campo de texto de manera que acepte un número en formato #-####-#### por ejemlo 2-0458-5621. Gracias por su ayuda
  #2 (permalink)  
Antiguo 29/11/2003, 12:08
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola, v_i_n_i_c_i_o.

Prueba esto:
Código PHP:
<html>
<
head>
<
script>
function 
validar() {
    
num=document.getElementById('pru').value;
    
patron=/[0-9]{1}-[0-9]{4}-[0-9]{4}/;
    
alert(patron.test(num));
}
</script>
</head>

<body>
<input type="text" id="pru">
<input type="button" onclick="validar()">
</body>
</html> 
Saludos,
  #3 (permalink)  
Antiguo 30/11/2003, 11:35
Avatar de v_i_n_i_c_i_o  
Fecha de Ingreso: noviembre-2003
Ubicación: Costa Rica
Mensajes: 422
Antigüedad: 20 años, 5 meses
Puntos: 0
Gracias

Muchas Gracias JaverB era exactamente lo que necesitaba.
  #4 (permalink)  
Antiguo 30/11/2003, 20:33
 
Fecha de Ingreso: noviembre-2003
Ubicación: En casa
Mensajes: 65
Antigüedad: 20 años, 5 meses
Puntos: 0
Disculpen si me equivoco pero me parece que se les escapó un pequeño error: ¿para usar el caracter "-" no hay que usar el simbolo de escape así: "\-"?

No estoy seguro, pero me parece que sí, diganme si me equivoco. Tmb pueden usar "\d" en vez de [0-9]
__________________
Hay 3 tipos de personas en este mundo: las que saben contar y las que no...
  #5 (permalink)  
Antiguo 01/12/2003, 02:49
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola, Mostlair.

Sobre \d en lugar de [0-9] si que es cierto. Lo de \- yo tampoco estoy seguro, en este caso concreto funciona de las dos formas. Pero gracias a tu comentario he hecho algunas pruebas y he visto que había un error en el patron que, creo yo, debería quedar así:

patron=/^\d{1}-\d{4}-\d{4}$/g;

Si alguien más ve otros errores que no dude en decirlo y así vamos aprendiendo todos.

Saludos,
  #6 (permalink)  
Antiguo 01/12/2003, 09:59
Avatar de v_i_n_i_c_i_o  
Fecha de Ingreso: noviembre-2003
Ubicación: Costa Rica
Mensajes: 422
Antigüedad: 20 años, 5 meses
Puntos: 0
Gracias por la corrección, ni siquiera me había dado cuenta de que tenía un error.

Otra pregunta:
¿Cómo puedo hacer para que la persona utilice sólo números (que los demás caracteres estén bloqueados).
Yo estuve usando esta restricción, pero ya no me sirve, no sé que le cambié:

document.txtcampo.restrict = "0-9";

gracias!
__________________
"Un experto es una persona que ha cometido todos los errores que se pueden cometer en un determinado campo" - Niels Bohr
:cool: 0!)!u!/\ :patada:
  #7 (permalink)  
Antiguo 01/12/2003, 13:02
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

Nunca habia visto lo de document.txtcampo.restrict = "0-9"; Puedes usar esta función:

function numeros(e) {
tecla=(document.all) ? e.keyCode : e.which;
if((tecla<48 || tecla>57) && tecla!=45) return false;
}

La llamas con:

<input type="text" onKeyPress="return numeros(event)">

Saludos,
  #8 (permalink)  
Antiguo 01/12/2003, 15:31
Avatar de v_i_n_i_c_i_o  
Fecha de Ingreso: noviembre-2003
Ubicación: Costa Rica
Mensajes: 422
Antigüedad: 20 años, 5 meses
Puntos: 0
Hola JavierB. Gracias por toda la ayuda que me has brindado, creo que voy a necesitar más de tu ayuda. No se qué estoy haciendo mal, pero la función que me enviaste (numeros(e)) no me sirve. Lo puse tal y como está en tu ejemplo, pero ni siquiera reconoce el evento onKeyPress.
De nuevo Muchas Gracias por tu ayuda.
__________________
"Un experto es una persona que ha cometido todos los errores que se pueden cometer en un determinado campo" - Niels Bohr
:cool: 0!)!u!/\ :patada:
  #9 (permalink)  
Antiguo 01/12/2003, 19:08
 
Fecha de Ingreso: noviembre-2003
Ubicación: En casa
Mensajes: 65
Antigüedad: 20 años, 5 meses
Puntos: 0
Hola nuevamente: revisé lo del caracter "-" y estaba equivocado, pues se usa para formar las regexp, pero siempre dentro de corchetes, por lo tanto no es necesario el caracter de escape. Muy bien con lo de limitar el tamaño con '^' y '$'!!! Pero: ¿el modificador de global (g) es necesario?

Probé la funcion de JavierB y me andubo a la perfección, muchas gracias JavierB . Lo probé con IE6, que explorador tenés vinicio?

Nos vemos
  #10 (permalink)  
Antiguo 02/12/2003, 11:51
Avatar de v_i_n_i_c_i_o  
Fecha de Ingreso: noviembre-2003
Ubicación: Costa Rica
Mensajes: 422
Antigüedad: 20 años, 5 meses
Puntos: 0
Muchas gracias, ya lo solucioné, no se ni que hice, posiblemente algo lo hice mal, pero ya funciona. Muchas gracias me sirvió michísimo. Si alguna vez vienen a Costa Rica, ya tienen una cerveza!

Gracias!
__________________
"Un experto es una persona que ha cometido todos los errores que se pueden cometer en un determinado campo" - Niels Bohr
:cool: 0!)!u!/\ :patada:
  #11 (permalink)  
Antiguo 02/12/2003, 12:11
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola otra vez, Mostlair.

En este caso no es necesario el modificador g. Estuve haciendo varias pruebas para que funcionara y al final lo dejé no se muy bien porqué.

v_i_n_i_c_i_o: me alegro de que lo hayas solucionado.

Hasta otra. Saludos,
  #12 (permalink)  
Antiguo 02/12/2003, 18:48
 
Fecha de Ingreso: noviembre-2003
Ubicación: En casa
Mensajes: 65
Antigüedad: 20 años, 5 meses
Puntos: 0
Gracias por tu aclaración JabierB, por mi cuenta lo busqué y se usaría si es necesario encontrar más de una coincidencia, pero ello es imposible, gracias a los indicadores de posición (^ y $) Lo quería dejar como aclaración. Tu participación da gusto!

v_i_n_i_c_i_o, me alegro de que pudieras solucionarlo, y cuento lo de la cerveza como promesa, ojala algún día pueda tomarla!

Suerte para todos!
  #13 (permalink)  
Antiguo 13/01/2004, 09:33
Avatar de GaladNor  
Fecha de Ingreso: noviembre-2003
Ubicación: Santiago
Mensajes: 42
Antigüedad: 20 años, 5 meses
Puntos: 0
Cita:
Mensaje Original por v_i_n_i_c_i_o
Gracias por la corrección, ni siquiera me había dado cuenta de que tenía un error.

Otra pregunta:
¿Cómo puedo hacer para que la persona utilice sólo números (que los demás caracteres estén bloqueados).
Yo estuve usando esta restricción, pero ya no me sirve, no sé que le cambié:

document.txtcampo.restrict = "0-9";

gracias!
Grax por el Ejemplo... buscaba esta funcion hace mucho rato...
__________________
www.galadnor.cl Dominando tu Diversion

Quieres escribirme?... [email protected]
Caratulas de musica www.caratulas-chilenas.cl.nu
  #14 (permalink)  
Antiguo 13/01/2004, 10:00
Avatar de v_i_n_i_c_i_o  
Fecha de Ingreso: noviembre-2003
Ubicación: Costa Rica
Mensajes: 422
Antigüedad: 20 años, 5 meses
Puntos: 0
Muchas gracias a todos los que interactúan en este foro, en realidad no habría podido solucionar mis problemas sin su ayuda.
__________________
"Un experto es una persona que ha cometido todos los errores que se pueden cometer en un determinado campo" - Niels Bohr
:cool: 0!)!u!/\ :patada:

Última edición por v_i_n_i_c_i_o; 13/01/2004 a las 10:07
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 06:54.