检查字符串是否包含电子邮件地址?

时间:2013-05-07 17:02:48

标签: javascript jquery regex string parsing

如何检查以验证给定字符串是否包含电子邮件地址。

电子邮件地址也会包含很多其他文字。

此外,不一定要严格验证电子邮件地址本身。更重要的是只想确保a@b.xyz存在。

示例字符串:

Overall I liked the service, but had trouble using the widget generator.

Want more info? You can contact me at bob@example.org.

普通的javascript很好,但我确实碰巧使用了jQuery,所以如果有某种辅助函数可以让它变得更容易......那就去吧。

3 个答案:

答案 0 :(得分:11)

Debuggex Example

JsFiddle Example

function checkIfEmailInString(text) { 
    var re = /(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))/;
    return re.test(text);
}

答案 1 :(得分:5)

您可以使用:

var StrObj = "whatever, this is my email dave@gmail.com other text";
var emailsArray = StrObj.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
if (emailsArray != null && emailsArray.length) {
    //has email
}

如果需要,还可以从阵列中获取电子邮件地址。

答案 2 :(得分:1)

尝试

/\b[a-z0-9-_.]+@[a-z0-9-_.]+(\.[a-z0-9]+)+/i.test(text)