Expresión regular para validar emails en Javascript

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