尝试在文本框中验证以逗号分隔的电子邮件列表asp:RegularExpressionValidator
,请参阅以下内容:
<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>
Run Code Online (Sandbox Code Playgroud)
当我在http://regexhero.net/tester/上测试时,它工作得很好,但它在我的页面上不起作用.
这是我的示例输入:
test@test.com,test1@test.com
Run Code Online (Sandbox Code Playgroud)
我在这篇文章中尝试了一个建议,但无法让它发挥作用.
ps我不想讨论正确的电子邮件验证
Mat*_*att 19
此正则表达式将允许逗号后面带空格的电子邮件.
^[\W]*([\w+\-.%]+@[\w\-.]+\.[A-Za-z]{2,4}[\W]*,{1}[\W]*)*([\w+\-.%]+@[\w\-.]+\.[A-Za-z]{2,4})[\W]*$
Run Code Online (Sandbox Code Playgroud)
为此,一位同事提出了更准确的RegEx.上面的答案似乎通过电子邮件地址列表,其中第一个元素不是电子邮件地址.这是更新,它还允许逗号后面的空格.
Don*_*nut 17
试试这个:
^([\w+-.%]+@[\w-.]+\.[A-Za-z]{2,4},?)+$
Run Code Online (Sandbox Code Playgroud)
+
在括号后添加意味着前面的组可以存在1次或更多次.
添加^
和$
表示字符串的开头和匹配的开始(或匹配的结束和字符串的结尾)之间的任何内容都会导致验证失败.
被选为最佳匹配的第一个答案abc@xyz.comxyz@abc.com
是无效的字符串。
以下正则表达式非常适用于逗号分隔的电子邮件 ID。
^([\w+-.%]+@[\w.-]+\.[A-Za-z]{2,4})(,[\w+-.%]+@[\w.-]+\.[A-Za-z]{2,4})*$
Run Code Online (Sandbox Code Playgroud)
它将匹配单个 emailId,逗号分隔的 emailId,但如果缺少逗号则不匹配。
第一组将匹配单个 emailId 的字符串。'*' 标记可选地要求第二组,即 0 或更多数量的此类组,但 ',' 需要位于此类 emailId 的开头,这使得逗号分隔的 emailId 与上述正则表达式匹配。