Если быть точным, вы можете реализовать регулярное выражение из RFC822, которое описывает действительные форматы адресов электронной почты , однако вы можете сэкономить время и головную боль, выполнив что-то быстрое и простое, например:
var extractEmailAddress = function(s) {
var r=/<?(\S+@[^\s>]+)>?/, m=(""+s).match(r);
return (m) ? m[1] : undefined;
};
extractEmailAddress('xxx@abc.com'); // => "xxx@abc.com"
extractEmailAddress('<yyy@abc.com>'); // => "yyy@abc.com"
Конечно, эта функция будет очень допустимой строк, которые, возможно, даже отдаленно выглядят как адрес электронной почты, поэтому регулярное выражение "r" может быть улучшено, если важно качество.