Для какого адреса электронной почты они не работают? Это регулярное выражение работает:
var regex = new RegExp(/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i );
var emails = [
'a.valid.email@gmail.com',
'asdf@asdf.com',
'another@valid.email.address.com'
];
var str = '';
for (var i=0; i<emails.length; i++) {
str += emails[i] + ': ' + regex.test(emails[i]) + "\n";
}
alert(str);
Это создает предупреждение с "true" для каждого электронного письма.