miércoles, 20 de febrero de 2013

Validar email con expresiones regulares en PHP

Hay en la web diferentes expresiones regulares que validan direcciones de correo electrónico, pero tienen huecos, así que les paso una muy buena y robusta, que encontré en un software que se llama Expresso (http://www.ultrapico.com) y se las comparto a ustedes. La aplico en PHP pero como saben pueden usarla en Javascript y cualquier otro lenguaje.


Débiles expresiones regulares que encontré en la web, que permiten pasar direcciones como: uramos@gmail, uramos@gmail., uramos@gmail.com.
preg_match("^([a-z0-9_-])+([\.a-z0-9_-])*@([a-z0-9-])+(\.[a-z0-9-]+)*\.([a-z]{2,6})$", $email);
preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $email);


Verdadera expresión regular que valida direcciones de correo:
function validarEmailAddress($email)
{
   // Regresa 1 si la cadena hace match
   // Regresa 0 si no hace match
   // Regresa FALSE si hubo un error
   return preg_match("/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})+$/", $email);
}

Las funciones de PHP ereg() y eregi() son obsoletas y quedarán fuera desde la versión 5.3, por eso usamos preg_match()

No hay comentarios:

Publicar un comentario

Datos personales

Mi foto
Podrás encontrar códigos recursos y artículos sobre PHP, JavaScript, jQuery, MooTools, Ajax, CSS, HTML, UML, RUP, AUP, XP (eXtreme Programming), Six-Sigma, CMMI, FrameWorks, Zend Framework, Magento, CodeIgniter, CakePHP, Joomla 1.5, Doctrine, Active Record, ORM, POO, MVC, MySql, PostgreSql. Este espacio está destinado a ayudar y compartir un poco de lo mucho que he recibido de la comunidad en la Red.