Foros del Web » Programando para Internet » Javascript »

validar correos

Estas en el tema de validar correos en el foro de Javascript en Foros del Web. Hola a todos, agradezco toda la ayuda que puedan brindarme, tengo una función que valida un campo, el formato del correo; como puede tener una ...
  #1 (permalink)  
Antiguo 18/05/2009, 08:48
 
Fecha de Ingreso: octubre-2007
Mensajes: 38
Antigüedad: 16 años, 7 meses
Puntos: 0
validar correos

Hola a todos, agradezco toda la ayuda que puedan brindarme, tengo una función que valida un campo, el formato del correo; como puede tener una cuenta de correo también puede tener hasta cinco cuentas, tengo la función pero se demora muchisimo para validar y obviamente es tedioso para el usuario. Qué puedo hacer

Gracias
  #2 (permalink)  
Antiguo 18/05/2009, 12:24
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: validar correos

muy dificil dar una repuesta concreta y certera ya que existen multiples posibilidades para la validacion. puesto que el mensaje esta en el foro javascript, se entiende que la validacion la realizas en javascript, aunque no necesariamente cierto.

lo primero, optimiza tu codigo. no se que algoritmo estaras utilizando pero expresiones regulares es lo mejor que hay para comprobar formatos en textos. aparte de su potencial, generalmente con dos o tres lineas de codigo es suficiente. he visto otros algoritmos donde se utilizan sentencias complejas comprobando caracter por caracter para su validacion. si este es tu caso, aun asi me cuesta creer que se aprecie alguna demora en la ejecuccion.

otra posibilidad de validacion, aunque posible pero tambien algo inusual o nada practico, es enviar el contenido mediante XHR para ser validado en el servidor. es evidente que este tipo de validacion es mucho mas lento porque se trata de una repuesta del servidor y para ellos es necesario el uso de la red (internet). de modo que si el trafico es muy lento se apreciara con gran notabilidad la demora. en este caso, nada que se pueda hacer.

pienso que deberias mostrar tu codigo o un enlace donde podamos determinar donde esta el fallo (si alguno).
  #3 (permalink)  
Antiguo 19/05/2009, 12:30
 
Fecha de Ingreso: octubre-2007
Mensajes: 38
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: validar correos

Hola, este es mi codigo, xq no se otro, no se como sería con las expresiones regulares, ya que como te digo, mi campo puede tener de 1 a 5 correos:

Gracias

// JScript File
var text=valor.value;
function validarEmail(valor)
{
var text=valor.value;
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+\;\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+\;\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(text))
{
alert("ehhhhh");
return (true)
}
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+\;\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+\;\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+\;\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(text))
{
alert("ehhhhh");
return (true)
}
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(text))
{
alert("ehhhhh");
return (true)
}
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+\;\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(text))
{
alert("ehhhhh");
return (true)
}
else
{
valor.focus();
alert("La dirección de email es incorrecta y entre correos debe estar separado por ";" punto y coma y sin espacios");
return (false);
}
}
  #4 (permalink)  
Antiguo 19/05/2009, 13:27
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: validar correos

rayos, si que lo has complicado! te recomiendo lo siguiente. permite la separacion por punto y coma, y espacio. es mas facil de leer para el ojo y causa menos molesta y error para el usuario. en tu funcion definiras una sola expresion regular para validar los emails. pero antes, vas a dividir la cadena con el metodo split usando como argumento el string ";\x20" el cual produce un array. luego itera el array para validar cada valor con la expresion regular.
  #5 (permalink)  
Antiguo 20/05/2009, 16:02
 
Fecha de Ingreso: octubre-2007
Mensajes: 38
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: validar correos

Cita:
Iniciado por zerokilled Ver Mensaje
rayos, si que lo has complicado! te recomiendo lo siguiente. permite la separacion por punto y coma, y espacio. es mas facil de leer para el ojo y causa menos molesta y error para el usuario. en tu funcion definiras una sola expresion regular para validar los emails. pero antes, vas a dividir la cadena con el metodo split usando como argumento el string ";\x20" el cual produce un array. luego itera el array para validar cada valor con la expresion regular.
Hola, muchas gracias por tu respuesta, yo no manejo java y lo único que se me ocurrió fue ese código que no es nada recomendable. Lo que tu me sugieres, para ver si entendí bien, es que lo que mi usuario digite sin importar el número de correos, será separado usando el método que me mencionas y cada correo será validado con un sola expression regular??? pero puedo dejar como expression regular esta:
(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3}))
o me tocaría cambiarla de todas formas???

Saludos y gracias por la ayuda q me estas brindando
  #6 (permalink)  
Antiguo 20/05/2009, 20:07
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: validar correos

es correcto. utilizaras una misma expresion regular para todos los emails. en cuanto a tu expresion regular, pues quizas tengas que modificarla o mejorarla. en la web ya hay recomendaciones de como debe ser el codigo pero no voy a indagar buscandola. en todo caso, tu expresion se puede simplificar.
Código:
/^[\w\-\.]+@[\w\-\.]+\w{2,3}$/
  #7 (permalink)  
Antiguo 01/06/2009, 16:01
 
Fecha de Ingreso: octubre-2007
Mensajes: 38
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: validar correos

Muchisimas gracias por todo, funcionó correctamente.

Saludos
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 18:50.