PHP:¿Cómo validar e-mail de una forma más compleja?
De Foros del Web
Aquí está la solución. Usaremos "eregi", variables globales, regexps, if-else.
Código PHP:
$email_correcto = "^[a-z0-9_\+-]+(\.[a-z0-9_\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})$"; $caracteres_extranos = "^[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,})$"; // Validamos la dirección, usamos caracteres comunes if (eregi($email_correcto, $email)) { echo("La dirección <i>$email</i> es válida."); } /* Validamos la dirección, tomamos en cuenta que algunos proveedores permiten caracteres extraños.*/ else if (eregi($caracteres_extranos, $email)) { echo("La dirección <i>$email</i> contiene caracteres extraños, pero comúnmente no afecta el script. Se tomará como válida."); } // Si nada de lo anterior pasa... return false else { echo("La dirección <i>$email</i> no es válida."); }
--urgido 31 Oct 2006
Este artículo es parte de las FAQs de PHP y el Manual de PHP.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
