Foros del Web » Programando para Internet » Javascript »

Validar dirección de email con puntos

Estas en el tema de Validar dirección de email con puntos en el foro de Javascript en Foros del Web. Buenas, foreros. Estoy utilizando el siguiente script para validar emails en una web: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function isEmail ( cadena ) ...
  #1 (permalink)  
Antiguo 08/08/2011, 11:47
 
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 262
Antigüedad: 16 años, 10 meses
Puntos: 1
Pregunta Validar dirección de email con puntos

Buenas, foreros. Estoy utilizando el siguiente script para validar emails en una web:

Código Javascript:
Ver original
  1. function isEmail(cadena){
  2.     var filter=/^[A-Za-z][A-Za-z0-9_\-]*@[A-Za-z0-9_\-]+\.[A-Za-z0-9_.\-]+[A-za-z]$/;
  3.     if  ((cadena.value.length > 0 ) & (filter.test(cadena.value))){
  4.         return true;
  5.     }
  6.     return false;
  7. }

El problema es que no me admite direcciones que tienen puntos antes de la arroba (ej: [email protected]). ¿Podrían decirme cómo resolverlo?

Muchas gracias,
Pablo
__________________
Moebius Digital | La pieza que faltaba
Diseño web | Web hosting
  #2 (permalink)  
Antiguo 08/08/2011, 11:55
 
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 262
Antigüedad: 16 años, 10 meses
Puntos: 1
Respuesta: Validar dirección de email con puntos

Con este filter parece funcionar:

Código Javascript:
Ver original
  1. var filter=/^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$/;

Si ven que puede generarse algún problema, por favor me avisan.

Gracias!
Pablo
__________________
Moebius Digital | La pieza que faltaba
Diseño web | Web hosting
  #3 (permalink)  
Antiguo 09/08/2011, 00:49
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 5 meses
Puntos: 66
Respuesta: Validar dirección de email con puntos

buenas,

creo que deberías usar mejor esta:
Código Javascript:
Ver original
  1. var filter=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
con la que has puesto tú te permite caracteres raros (tipo barras y cosas así que no están permitidas en direcciones de correo). Además esta que te paso detecta incluso si una extensión de dominio es mayor de 3 caracteres, que tampoco están permitidas ([email protected] no es una dirección de correo válida)

saludos.
  #4 (permalink)  
Antiguo 11/08/2011, 12:25
 
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 262
Antigüedad: 16 años, 10 meses
Puntos: 1
Respuesta: Validar dirección de email con puntos

Gracias por tu respuesta, ceSharp. Si bien es cierto que no existe algo .cooom, sí existe por ejemplo el .info, por lo que me parece mejor que acepte hasta cuatro caracteres al final de la dirección. Si no entiendo mal, eso haría así:

Código Javascript:
Ver original
  1. var filter=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;

¿Es correcto? ¿alguien más que guste participar de "el mejor filter de validación jamás creado"?
__________________
Moebius Digital | La pieza que faltaba
Diseño web | Web hosting
  #5 (permalink)  
Antiguo 11/08/2011, 17: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 dirección de email con puntos

buenas,
no hace falta en participar en el mejor filtro de email jamás creado. es cuestion de analizar la sintaxis que define el RFC 5322. particularmente la secciones 3.4.1 y 3.2.3. nótese que en la práctica, muchos de los servicios de correo tienen una sintaxis más limitada y/o con cierto requerimiento.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: email, punto, validar
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 01:50.