使用javascript发送电子邮件查找器正则表达式

时间:2012-07-04 07:35:41

标签: javascript regex email-validation

我有这个正则表达式用于匹配字符串中的电子邮件地址。

[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,})

这不是世界上最好的正则表达方式,但我的使用效果很好。

当我使用这样的javascript:

var emails = string.match("[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,})");

我只匹配第一个电子邮件地址,这是正常的,因为我没有使用g修饰符。

问题是当我使用g修饰符时:

var emails = email[0].match("[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,})g");

var电子邮件为空,因此我的匹配无效。

如果你能帮我解决这个问题。

谢谢。

2 个答案:

答案 0 :(得分:4)

尝试:

var emails = yourString.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);

答案 1 :(得分:1)

尝试这个我在我的系统中的servlet验证过滤器中使用它我不知道它是否在javascript中工作

"^[a-zA-Z0-9._]+@[a-zA-Z0-9._]{3,}$"