[英]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.