No tiene mucho sentido utilizar la de PHP, demasiado complicado y de hecho creo que los flags ni siquiera son compatibles. Puedes usar el estándar oficial (RFC 2822) y a correr.
https://stackoverflow.com/a/1373724/1974385
Saludos
Código (javascript) [Seleccionar]
function validateEmail(email) {
var re = /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;
return re.test(String(email).toLowerCase());
}
https://stackoverflow.com/a/1373724/1974385
Saludos