Verificar si el formato de una dirección de correo es valido

Mayo 2017

Existen varias maneras de determinar si una variable contiene una dirección de correo valida. Estas técnicas no verifican si la dirección de correo existe, sólo determinan si la cadena contenida en la variable respeta el formato de una dirección de correo.


I. Utilizando un filtro


Utilizando una función de la familia de filtros podemos verificar si una dirección de correo es valida. Por ejemplo filter_var()
Ejemplo:

if(filter_var($email, FILTER_VALIDATE_EMAIL)){
    //La dirección de correo es buena
}

II. Utilizando expresiones regulares


Utilizando expresiones regulares podemos verificar si una dirección de correo, ingresada por ejemplo mediante un formulario, es valida.

A continuación una función que verifica si una cadena de caracteres es una dirección de correo valida.

función VerificarrDireccionCorreo($direccion)
{
   $Sintaxis='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
   if(preg_match($Sintaxis,$direccion))
      return true;
   else
     return false;
}

Ejemplo


Después de haber obtenido el campo “dirección” de un formulario:

$direccion=htmlentities($_POST['direccion']);
if(VerificarDireccionCorreo($direccion))
  echo '<p>Tu direccion es valida.</p>';
else
  echo '<p>Tu dirección e-mail no es valida.</p>';

Explicación


Las almohadillas (#) son los delimitadores de las expresiones regulares.
El símbolo ^ indica que la cadena debe comenzar con lo que sigue, y el símbolo $ indica que debe terminarse con lo que precede.
\w es una clase abreviada que corresponde a A-Za-z0-9_. O sea a las 26 letras del alfabeto en mayúsculas o minúsculas, las diez cifras y un underscore.

Lo que hace el código


^[\w.-]+@ Comienza (^)al menos con un carácter correspondiente a la clase abreviada, o un guión, luego es seguido por un @.
[\w.-]+ uno o más caracteres correspondientes a la clase abreviada o un guión (es el nombre de dominio)
\.[a-zA-Z]{2,6}$ un punto, luego de dos a seis letras, que terminan la cadena (es el tld del nombre de dominio).

Consulta también

Artículo original escrito por . Traducido por Carlos-vialfa. Última actualización: 28 de agosto de 2009 a las 20:06 por Carlos-vialfa.
El documento «Verificar si el formato de una dirección de correo es valido» se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo libremente. No olvides citar a CCM (es.ccm.net) como tu fuente de información.