2012-06-20 38 views
0

我试图验证逗号的字符串分隔在C#中的电子邮件验证逗号分隔在C#中的电子邮件与正则表达式

到目前为止,已经工作:

^[\W]*([\w+\-.%][email protected][\w\-.]+\.[A-Za-z]{2,4}[\W]*,{1}[\W]*)*([\w+\-.%][email protected][\w\-.]+\.[A-Za-z]{2,4})[\W]*$ 

但我需要它不允许电子邮件如果它们被多个逗号分隔。 例如:

[email protected],,[email protected] 

将发回一个无效的电子邮件,让用户知道重新键入它

+2

你可以验证他们简化正则表达式之前拆分邮件。 – jrummell

回答

1

我会建议你做的正则表达式之前拆分字符串。您可以检查空字符串以查看它们是否在背靠背中有两个逗号。

然后你只是留下了电子邮件地址的正则表达式的正常问题,正如你可以看到:

https://stackoverflow.com/search?q=Email+address+validation

已经询问了bajillion倍,真的有没有一个很好的答案。

0

我使用的语言是VB.NET,但这些方法保持不变:

Imports System.Net.Mail 

Module Module1 

    Friend Function IsValidEmailAddress(a As String) As Boolean 
     Dim isValid As Boolean = False 
     Try 
      Dim e = New MailAddress(a) 
      isValid = True 
     Catch ex As FormatException 
      isValid = False 
     End Try 

     Return isValid 

    End Function 

    Sub Main() 
     Dim addressesToCheck = "[email protected],,[email protected],notanemailaddress" 
     Dim addresses = addressesToCheck.Split(",".ToCharArray, StringSplitOptions.RemoveEmptyEntries) 
     For Each a In addresses 
      Console.WriteLine(String.Format("{0} valid: {1}", a, IsValidEmailAddress(a))) 
     Next 

     Console.ReadLine() 

    End Sub 

End Module 

输出:

[email protected] valid: True 
[email protected] valid: True 
notanemailaddress valid: False 
相关问题