Foros del Web » Programando para Internet » PHP »

Expresión regular. Validar mail, con fallos

Estas en el tema de Expresión regular. Validar mail, con fallos en el foro de PHP en Foros del Web. Hola. Utilizo esta expresión para validar los email Código PHP: if (! ereg ( "^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$" , $email  ) )  El problema que he detectado es que admite ...
  #1 (permalink)  
Antiguo 17/10/2005, 06:50
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 13 años, 6 meses
Puntos: 0
Expresión regular. Validar mail, con fallos

Hola.

Utilizo esta expresión para validar los email
Código PHP:
if (!ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$email ) ) 
El problema que he detectado es que admite direcciones tipo
Código PHP:
algo@dominio 
Es decir, no controla que haya una terminación .com, ,net, etc...

Yo creo que esta última parte
Código PHP:
.([a-zA-Z]{2,4}) 
debería controlar esto.

¿Véis que algo esté mal?.

Gracias por vuestra ayuda.
  #2 (permalink)  
Antiguo 17/10/2005, 08:01
Avatar de tralara  
Fecha de Ingreso: diciembre-2003
Mensajes: 230
Antigüedad: 14 años
Puntos: 0
Yo la uso así:

Código PHP:
(!eregi("^[a-z]+[_\.\-]{0,1}[a-z0-9][email protected][a-z0-9]+[_\.\-]{0,1}[a-z0-9]+\.[a-z]{2,4}$"$mail)) 
Saludos
  #3 (permalink)  
Antiguo 17/10/2005, 08:44
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 13 años, 6 meses
Puntos: 0
Muchas gracias por responder.
He probado tu expresión y controla bien los .com, .net, etc. Con tu permiso, la voy a usar.
Lo que no entiendo es por qué la mía (seguramente sacada de estos foros) no me funciona. Ya se que no es fácil, pero, si alguien lo sabe, por favor dígamelo. Es para aprender.

Muchas gracias.
  #4 (permalink)  
Antiguo 17/10/2005, 09:21
Avatar de tralara  
Fecha de Ingreso: diciembre-2003
Mensajes: 230
Antigüedad: 14 años
Puntos: 0
Me parece que no escapabas el punto de la extensión...

Por otro lado creo que las extensiones de dominio siempre se escriben en minusculas, por lo que no hace falta a-zA-Z, con a-z es suficiente...

Aunque seguro que algún experto nos dará mas y mejores explicaciones!

Última edición por tralara; 17/10/2005 a las 09:30
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:19.