2012-06-20 39 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 
相關問題