我使用RegularExpressionValidator验证由逗号“,”分隔的多个电子邮件地址
我的下面的表达式可以满足这个要求:
"((\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)*([,])*)*"
Requirment是这个表达式应该能够在电子邮件地址中的逗号之后处理空格。
例如我的当前表达式工作文件为email1 @ domain.com,email2 @ domain.com 但它不做的是email1 @ domain.com,email2 @ domain.com
我知道可以有很多解决方案,但在我的snario中最好是增强这种表达。
请指导我
答案 0 :(得分:5)
您可以使用现有的正则表达式,而是用每个逗号分割字符串并修剪尾随/前导空格:
var emails = input.Split(',');
foreach (var email in emails.Select(ee => ee.Trim()))
{
if (!emailValidator.IsMatch(email))
{
// announce a bad email
}
}
答案 1 :(得分:1)
这是我的建议:
((\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)*([, ])*)*
这将接受电子邮件地址之间的空白
答案 2 :(得分:1)
除了费舍曼所说的,另一种选择可能是将电子邮件拆分成单独的电子邮件,然后单独验证每封电子邮件。
var emails = emailString.split(',');
for(var i = 0; i < emails.length; i++){
var email = emails[i].trim().replace(',', '');
// Now you can validate a single, comma-less, space-less email;
}