Foros del Web » Programando para Internet » Javascript »

Ayuda para validar inout numerico con ( ) parentesis

Estas en el tema de Ayuda para validar inout numerico con ( ) parentesis en el foro de Javascript en Foros del Web. Hola Amigos, tengo lo siguiente: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original // valido el telefono     if ( document. ctcform . phone . ...
  #1 (permalink)  
Antiguo 14/06/2010, 15:38
Avatar de function  
Fecha de Ingreso: abril-2010
Mensajes: 278
Antigüedad: 14 años
Puntos: 13
Ayuda para validar inout numerico con ( ) parentesis

Hola Amigos,

tengo lo siguiente:
Código Javascript:
Ver original
  1. // valido el telefono
  2.     if(document.ctcform.phone.value.length==0){
  3.     document.getElementById('phone').style.display="inline"
  4.     document.ctcform.phone.focus()
  5.     return false;
  6.     } else {
  7.     document.getElementById('phone').style.display="none"
  8.     }

y quisiera que ademas de asegurarse de que el campo no esté vacio éste deba contener un numero de telefono (formato numerico), si el usuario lo desea tambien puede incluir el numero de area entre (), lo cual me gustaria que también aceptara los parentesis, como puedo hacerlo??

Gracias
  #2 (permalink)  
Antiguo 14/06/2010, 15:48
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Ayuda para validar inout numerico con ( ) parentesis

Con expresiones regulares

Saludos (:
  #3 (permalink)  
Antiguo 14/06/2010, 16:48
Avatar de function  
Fecha de Ingreso: abril-2010
Mensajes: 278
Antigüedad: 14 años
Puntos: 13
Respuesta: Ayuda para validar inout numerico con ( ) parentesis

Cita:
Iniciado por _cronos2 Ver Mensaje
Con expresiones regulares

Saludos (:

Lo Inclui asi pero no me funciona
Código Javascript:
Ver original
  1. // valido el telefono
  2.     if(document.ctcform.phone.value.length==0){
  3.     document.getElementById('phone').style.display="inline"
  4.     document.ctcform.phone.focus()
  5.     return false;
  6.     } else {
  7.     document.getElementById('phone').style.display="none"
  8.     if (/^([(]?\d{2,3}+[)]?)?\d+(\d+)*(\.\w{2,3})+$/.test(valor)){
  9.     } else {
  10.     document.getElementById('email2').style.display="inline"
  11.     document.ctcform.email.focus()
  12.     return false;
  13.     }
  14.     }

el codigo completo que tengo es:
Código Javascript:
Ver original
  1. function contact_form(valor){
  2.     // valido el nombre
  3.     if(document.ctcform.name.value.length==0){
  4.     document.getElementById('name').style.display="inline"
  5.     document.ctcform.name.focus()
  6.     return false;
  7.     } else {
  8.     document.getElementById('name').style.display="none"
  9.     }
  10.     // valido el email
  11.     if(document.ctcform.email.value.length==0){
  12.     document.getElementById('email').style.display="inline"
  13.     document.ctcform.email.focus()
  14.     return false;
  15.     } else {
  16.     document.getElementById('email').style.display="none"
  17.     document.getElementById('email2').style.display="none"
  18.     if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){
  19.     } else {
  20.     document.getElementById('email2').style.display="inline"
  21.     document.ctcform.email.focus()
  22.     return false;
  23.     }
  24.     }
  25.     // valido el telefono
  26.     if(document.ctcform.phone.value.length==0){
  27.     document.getElementById('phone').style.display="inline"
  28.     document.ctcform.phone.focus()
  29.     return false;
  30.     } else {
  31.     document.getElementById('phone').style.display="none"
  32.     if (/^([(]?\d{2,3}+[)]?)?\d+(\d+)*(\.\w{2,3})+$/.test(valor)){
  33.     } else {
  34.     document.getElementById('phone2').style.display="inline"
  35.     document.ctcform.email.focus()
  36.     return false;
  37.     }
  38.     }
  39.     // valido el mensaje
  40.     if(document.ctcform.message.value.length==0){
  41.     document.getElementById('message').style.display="inline"
  42.     document.ctcform.message.focus()
  43.     return false;
  44.     } else {
  45.     document.getElementById('message').style.display="none"
  46.     }
  47. }
  #4 (permalink)  
Antiguo 14/06/2010, 17:04
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ayuda para validar inout numerico con ( ) parentesis

voy asumir que tu codigo esta bien por lo que significa que no lo he analizado. solo me voy a centrar en la expresion regular. el primer error que tienes es el repetidor. un repetidor no puede ir seguido de otro repetidor.
Código:
/^([(]?\d{2,3}+[)]?)?\d+(\d+)*(\.\w{2,3})+$/
lo otro es que hay ciertos caracteres que tienen un significado especial en las expresiones por lo que cuando queremos emplearlo como parte del patron hay que escaparlos. no te puedo dar un ejemplo porque a mi entender cada pais tiene un formato distinto.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 14/06/2010, 17:12
Avatar de function  
Fecha de Ingreso: abril-2010
Mensajes: 278
Antigüedad: 14 años
Puntos: 13
Respuesta: Ayuda para validar inout numerico con ( ) parentesis

Cita:
Iniciado por zerokilled Ver Mensaje
voy asumir que tu codigo esta bien por lo que significa que no lo he analizado. solo me voy a centrar en la expresion regular. el primer error que tienes es el repetidor. un repetidor no puede ir seguido de otro repetidor.
Código:
/^([(]?\d{2,3}+[)]?)?\d+(\d+)*(\.\w{2,3})+$/
lo otro es que hay ciertos caracteres que tienen un significado especial en las expresiones por lo que cuando queremos emplearlo como parte del patron hay que escaparlos. no te puedo dar un ejemplo porque a mi entender cada pais tiene un formato distinto.
no me funciona pero he insertado esta expresion r egular pero nada, se queda pegado mostrandome el inline phone2
Código Javascript:
Ver original
  1. /^\(?(\d{2,3})\)?[\.\-\/ ]?(\d{3})[\.\-\/ ]?(\d{4})$/
sabes porque?
  #6 (permalink)  
Antiguo 14/06/2010, 17:34
Avatar de function  
Fecha de Ingreso: abril-2010
Mensajes: 278
Antigüedad: 14 años
Puntos: 13
Respuesta: Ayuda para validar inout numerico con ( ) parentesis

Creo que mi error se ecnuentra aqui:

Código Javascript:
Ver original
  1. onsubmit="return contact_form(email.value);"

ya que solamente verifica el email, pero como hacer para que tambien verifique el phone, es decir los dos campos?

Alguien me ayuda??
  #7 (permalink)  
Antiguo 14/06/2010, 18:58
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ayuda para validar inout numerico con ( ) parentesis

parece que la situacion es un tanto obvia. tu funcion recibe un parametro (valor) y este es el que usas para validar en cada segmento. no es lo adecuado. lo correcto seria en tu funcion accesar a cada campo en cada segmento de validacion y leer el valor de campo. es decir, asi como haces para mover el foco al mismo campo, de la misma forma haces para leer la propiedad value de dicho campo. respecto a la expresion regular, a continuacion una forma como yo lo haria segun el formato que se usa en EU y sus terrotorios.
Código:
/^(?:\(\d{2,3}\)|\d{2,3})(.)\d{3}\1\d{4}$/;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #8 (permalink)  
Antiguo 14/06/2010, 19:23
Avatar de function  
Fecha de Ingreso: abril-2010
Mensajes: 278
Antigüedad: 14 años
Puntos: 13
Respuesta: Ayuda para validar inout numerico con ( ) parentesis

Cita:
Iniciado por zerokilled Ver Mensaje
parece que la situacion es un tanto obvia. tu funcion recibe un parametro (valor) y este es el que usas para validar en cada segmento. no es lo adecuado. lo correcto seria en tu funcion accesar a cada campo en cada segmento de validacion y leer el valor de campo. es decir, asi como haces para mover el foco al mismo campo, de la misma forma haces para leer la propiedad value de dicho campo. respecto a la expresion regular, a continuacion una forma como yo lo haria segun el formato que se usa en EU y sus terrotorios.
Código:
/^(?:\(\d{2,3}\)|\d{2,3})(.)\d{3}\1\d{4}$/;
Disculpame pero no te entendi bien.

Entendi la parte de que hacer el campo (valor) no es lo adecuado, pero como hago entonces para ponerlo y que me vailde la expresion regular?? y mas encima si lo tengo para dos campos??, agradeceria me ayudases con mi ignorancia

Gracias
__________________
~# echo Hemos logrado la independencia, pero no la libertad >> SimonBolivar
  #9 (permalink)  
Antiguo 14/06/2010, 20:33
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ayuda para validar inout numerico con ( ) parentesis

a esto es lo que me refiero...
Código:
if(expresion_regular.test(document.nombre_formulario.nombre_campo.value){
// evaluacion segun se desee si valida falso o cierto;
} else{
// lo contrario a la evaluacion anterior;
}
mas o menos esa es la estructura que te comentaba pero para cada campo. cada componente en bold son las partes que tienes que reemplazar.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: numerico
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 12:08.