Hace un tiempo buscaba una forma de validarlos, pero encontraba funciones incompletas o que no eran elegantes. Y creo que la mejor forma es utilizar una expresión regular para validar emails en Javascript.
Expresión regular para validar emails en Javascript
A continuación dejo una expresión regular bastante corta y fiable:
function isValidEmail(mail) {
return /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(mail);
}
Funciona perfectamente en Javascript tanto en lado de cliente como en NodeJS.
Ejemplos de validaciones de email
isValidEmail('david@davidburgos.blog'); // true
isValidEmail('david@ejemplo.com.es'); // true
isValidEmail('@google.com'); // false
isValidEmail('hola@.com'); // false
isValidEmail('hola@google.c'); // false
isValidEmail('hola@google'); // false
Actualización Agosto 2015
Si quieres permitir el carácter +
en los emails, utilizado para los alias en Gmail, utiliza la siguiente expresión:
function isValidEmail(mail) {
return /^\w+([\.\+\-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(mail);
}
Basada en W3Resource
Más info expresiones regulares en Javascript