首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用regex匹配逗号分隔的电子邮件列表?

如何使用regex匹配逗号分隔的电子邮件列表?
EN

Stack Overflow用户
提问于 2010-12-11 03:52:08
回答 13查看 31.7K关注 0票数 17

尝试使用asp:RegularExpressionValidator验证文本框中以逗号分隔的电子邮件列表,如下所示:

代码语言:javascript
复制
<asp:RegularExpressionValidator ID="RegularExpressionValidator1"
                    runat="server" ErrorMessage="Wrong email format (separate multiple email by comma [,])" ControlToValidate="txtEscalationEmail"
                    Display="Dynamic" ValidationExpression="([\w+-.%]+@[\w-.]+\.[A-Za-z]{2,4},?)" ValidationGroup="vgEscalation"></asp:RegularExpressionValidator>

当我在http://regexhero.net/tester/上测试它时,它工作得很好,但它不能在我的页面上工作。

下面是我的示例输入:

代码语言:javascript
复制
test@test.com,test1@test.com

我已经在this post中尝试了一个建议,但是不能让它工作。

附注:我不想讨论适当的电子邮件验证

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2010-12-11 03:57:00

试试这个:

代码语言:javascript
复制
^([\w+-.%]+@[\w-.]+\.[A-Za-z]{2,4},?)+$

在括号后添加+意味着前面的组可以出现1次或更多次。

添加^$意味着字符串的开头和匹配的开头(或匹配的结尾和字符串的结尾)之间的任何内容都会导致验证失败。

票数 19
EN

Stack Overflow用户

发布于 2012-02-17 23:59:07

此正则表达式将允许电子邮件在逗号后带有空格。

代码语言:javascript
复制
^[\W]*([\w+\-.%]+@[\w\-.]+\.[A-Za-z]{2,4}[\W]*,{1}[\W]*)*([\w+\-.%]+@[\w\-.]+\.[A-Za-z]{2,4})[\W]*$

一位同事想出了一个更准确的RegEx。上面的答案似乎通过了一个电子邮件地址列表,其中第一个元素不是电子邮件地址。下面是更新,它还允许逗号后面有空格。

票数 24
EN

Stack Overflow用户

发布于 2018-03-09 16:43:14

被选为最佳答案的第一个答案与字符串abc@xyz.comxyz@abc.com匹配,该字符串无效。

下面的正则表达式可以很好地处理逗号分隔的电子邮件ids。

代码语言:javascript
复制
^([\w+-.%]+@[\w.-]+\.[A-Za-z]{2,4})(,[\w+-.%]+@[\w.-]+\.[A-Za-z]{2,4})*$

它将匹配单个emailId,逗号分隔的emailId,但如果缺少逗号,则不匹配。

第一组将匹配单个emailId的字符串。第二组可选地由'*‘标记要求,即0个或更多个这样的组,但是要求',’在这样的emailId的开头,这使得逗号分隔的emailId与上面的正则表达式相匹配。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4412725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档