给定一个字符串,如何匹配“< >”中的所有电子邮件。
例如:
我可以有 xxx@abc.com
和 <yyy@abc.com>
我只想匹配 yyy@abc.com
.
谢谢!
最佳答案
要真正彻底,您可以从 RFC822, which describes valid email address formats 实现正则表达式, 但是,您可以通过像这样快速而简单的操作来节省时间和头痛:
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”。 p>
关于从字符串中获取所有电子邮件的 JavaScript 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6267412/