【问题标题】:Email finder regex with javascript使用 javascript 的电子邮件查找器正则表达式
【发布时间】:2012-07-04 16:24:07
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

标签: javascript regex email-validation


【解决方案1】:

试试:

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

【讨论】:

  • 谢谢 Sudhir,您的示例运行良好。我试过了。
  • 嗨,你能提供一个学习正则表达式的链接和一个工具来促进它吗?javascript正则表达式与java匹配方法相同,我的意思是请回答我:)
  • 嗯,你可以参考这个网站学习正则表达式:: regular-expressions.info,我不懂Java,但是模式应该是相同的,只有使用这些模式的函数因不同的语言而异..
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2017-06-07
    • 2014-05-11
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 2015-08-30
    相关资源
    最近更新 更多