0

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

[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 emails 为空,所以我的匹配不起作用。

如果可以的话,请帮助我。

谢谢你。

4

2 回答 2

5

尝试 :

var emails = yourString.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
于 2012-07-04T07:44:03.263 回答
1

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

"^[a-zA-Z0-9._]+@[a-zA-Z0-9._]{3,}$"
于 2012-07-04T07:40:02.083 回答