“,”之后的多个电子邮件地址中的空白区域

时间:2011-11-22 06:23:08

标签: c# asp.net regex email-validation

我使用RegularExpressionValidator验证由逗号“”分隔的多个电子邮件地址

我的下面的表达式可以满足这个要求:

"((\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)*([,])*)*"

Requirment是这个表达式应该能够在电子邮件地址中的逗号之后处理空格。

例如我的当前表达式工作文件为email1 @ domain.com,email2 @ domain.com 但它不做的是email1 @ domain.com,email2 @ domain.com

我知道可以有很多解决方案,但在我的snario中最好是增强这种表达。

请指导我

3 个答案:

答案 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;
   }