逗号分隔的正则表达式

时间:2010-12-21 11:45:42

标签: javascript regex

我有一个我很满意的电子邮件正则表达式,我们称之为EMAIL。 所以我的字段验证器看起来像这样

var regex=/^EMAIL$/

但现在船长告诉我他想在现场允许使用逗号分隔的电子邮件。

首先想到的是像

/^(EMAIL)?(, EMAIL)*$/

但重复EMAIL,这已经冒犯了我的感官。有没有办法在不重复EMAIL的情况下编写此正则表达式?

4 个答案:

答案 0 :(得分:3)

用逗号分隔值,然后在每个上使用正则表达式。

答案 1 :(得分:3)

这涵盖了所有提到的例子

^(EMAIL(,\s|$))+$

匹配

EMAIL
EMAIL, EMAIL

但不是

EMAILEMAIL

答案 2 :(得分:2)

我无法想到一种方法来匹配电子邮件列表,因为它是,而不重复EMAIL。这是一个简单的解决方法:

/^(EMAIL, )+$/.test(emailList + ", ");

示例:

var s = "abc, def, ghi, jkl";
/^([a-z]+, )+$/.test(s + ", ");

答案 3 :(得分:1)

Jason似乎最简单,但是对于它的价值,你也可以使用backreferences^EMAIL, EMAIL$^(EMAIL), \1$相同。