[英]Validating comma separated emails in c# with regex
我正在嘗試在C#中驗證以逗號分隔的電子郵件字符串
到目前為止,這已經奏效了:
^[\W]*([\w+\-.%]+@[\w\-.]+\.[A-Za-z]{2,4}[\W]*,{1}[\W]*)*([\w+\-.%]+@[\w\-.]+\.[A-Za-z]{2,4})[\W]*$
但是,如果它們被多個逗號分隔,我需要它不允許電子郵件。 例如:
test@test.com,,test@test.com
會發回無效的電子郵件,並讓用戶知道重新輸入。
我建議您在進行正則表達式之前先分割字符串。 您可以檢查是否有空字符串,以查看它們是否有兩個逗號背對背。
然后,您只剩下電子郵件地址正則表達式的正常問題,如您所見:
https://stackoverflow.com/search?q=電子郵件+地址+驗證
被詢問了數十億次,實際上沒有一個很好的答案。
我使用的語言是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 = "test@test.com,,test@test.com,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
輸出:
test@test.com valid: True
test@test.com valid: True
notanemailaddress valid: False
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.