2012-07-04 42 views
0

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

[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"); 

的变种的电子邮件为空,所以我的比赛不能正常工作。

如果你可以请帮助我这个。

谢谢。

+0

请提供一个真实的例子来测试我没有获得g部分以及 – shareef

+0

可能是[如何使用正则表达式来验证电子邮件地址?]的副本(http://stackoverflow.com/questions/201323/how-to-use-a-regular-expression-to -validate-an-email-addresses) – Ria

回答

4

尝试:

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

谢谢Sudhir,你的例子很好用。我已经尝试过了。 –

+0

嗨,你可以提供一个链接学习正则表达式和一个工具,以配合它,是JavaScript的正则表达式相同的Java匹配方法作为语法我的意思请回答我:) – shareef

+0

我搜索谷歌,但我需要你推荐给我 – shareef

1

试试这个我把它用在servlet的验证过滤器在我的系统我不知道,如果它在JavaScript

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

谢谢shareef。 –

相关问题