borrame.com - Colección particular de recortes de código y documentación para programación web

Canales RSS

Lo más fresco

  1. Bookmarklets Nuevo
  2. Recetario básico para CakePHP/2 Nuevo
  3. Certificado auto-firmado Nuevo

Sugerencias del chef

Lo más visitado

  1. Fecha y hora
  2. Dar formato a un número
  3. Reiniciar secuencia
  4. Vaciar un esquema
  5. Certificado auto-firmado
Compartir esta página

Validar un e-mail

Buscando un poco en Google aparecen enseguida montones de funciones para validar e-mails en PHP, típicamente repartidas en estas categorías:

La mía es mucho más humilde:

/* * Devuelve TRUE si $email parece una dirección de correo válida, FALSE si no */ function parece_email_valido($email){ // v2009-03-13     return preg_match('/^[a-z0-9\._-]+@[a-z0-9\._-]+\.(xn--)?[a-z0-9]{2,}$/i', $email); }

La comprobación es muy poco exahustiva y puede dejar pasar direcciones con sintaxis no válida. Únicamente busca detectar errores obvios al teclear, no impedir que alguien ponga una dirección falsa. De ahí el «parece».

La filosofía subyacente es tener una función cuyo código se entienda y minimizar el riesgo de dar el alto a direcciones que sí son válidas. Resulta absurdo no poderte registrar en un sitio sólo porque tu dominio de primer nivel tiene cuatro letras o no aparece en una lista incompleta que recopiló hace cinco años un webmaster con demasiado tiempo libre. La única forma de comprobar si una cuenta de correo existe es enviar un mensaje con algún código aleatorio que haya que teclear de vuelta (y eso tampoco es a prueba de balas).

Nota: merece la pena leer esta respuesta a una pregunta sobre validación de e-mails publicada en Stack Overflow. Incluye una expresión regular que es probablemente mejor que ésta.

IDNA

Esta función contempla dominios internacionales, como álvaro.es, pero sólo si aparecen codificados en ASCII, como xn--lvaro-wqa.es. Si algún día alguien los empieza a usar de verdad sería cuestión de hacerle un buen Punycode al e-mail antes de validarlo. Para más información:

Esta página ha sido impresa el sábado 23 de septiembre de 2017 (02:23:19 +0200) desde http://borrame.com/recortes/php/parece-email-valido.html. La última vez que miré contenía HTML válido con CSS fresquito y si tiene flatas de ortografía ha sido sin querer.

borrame.com es el sitio anteriormente conocido como bits.demogracia.com (no confundir con Demogracia, que sólo pasaba por ahí).

© 2005-2017 by Álvaro González (alvaro.es) • Burgos (España) • borrame.com