Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/09/2007, 07:25
juan007
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años, 1 mes
Puntos: 0
Expresion regular...Validando email

Compañeros(as)

Antes que todo saludarlos y agradecer desde ya cualquier ayuda o sugerencia.

Bueno encontre una funcion para validar el email, que para mi esta muy buena, el caso es que esta funcion no me permite emial con este tipo de caracter _ y hay muchos usuarios que utilizan en sus correos tal caracter _ .
El problema que yo no soy muy experto en las expresiones regulares, me gustaria si alguien me puede ayudar a visualizr en donde debo modificar el codigo para que acepte el caracter _ .

Les dejo la funcion.

Código PHP:
function check_email_address($email
{
// Primero se comprueba que existe una @ y que las longitudes son correctas
    
if (!ereg("[^@]{1,64}@[^@]{1,255}"$email))
    { 
    
// Email inválido por un número incorrecto de carácteres o número incorrecto de @'s
        
return false;
    }
    
// Partimos el email en porciones, a partir de la @ y el .
    
$email_array explode("@"$email);
    
$local_array explode("."$email_array[0]);
    for (
$i 0$i sizeof($local_array); $i++) 
    {
        if (!
ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$"$local_array[$i]))
        {
        return 
false;
        }
    } 
    if (!
ereg("^\[?[0-9\.]+\]?$"$email_array[1])) 
    { 
        
// Comprobamos si el dominio es una IP
        
$domain_array explode("."$email_array[1]);
        if (
sizeof($domain_array) < 2
        {
            return 
false// Dominio con partes insuficientes
        
}
        for (
$i 0$i sizeof($domain_array); $i++) 
        {
            if (!
ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$"$domain_array[$i])) 
            {
                return 
false;
            }
        }
    }
    return 
true;

Bueno espero que me puedan ayudar, el tipo de email que no me acepta es de esta forma: [email protected].

Gracias Nuevamente