【发布时间】:2011-10-25 01:37:12
【问题描述】:
目前,为了避免由于无效的电子邮件地址而引发错误,我执行以下操作:
Dim mailAddress As MailAddress
Try
mailAddress = New MailAddress("testing@invalid@email.com")
Catch ex As Exception
'Invalid email
End Try
但是,有没有一种方法可以验证电子邮件地址对于MailAddress 类型是否 100% 有效,而不是依赖于 Try..Catch?
我知道有很多用于验证电子邮件的正则表达式函数,但我正在寻找 MailAddress 类型用来验证其地址的函数。
【问题讨论】:
-
您是否尝试使用反编译器查看
MailAddress的用途? -
@Oded:我有。它使用一个名为
MailBnfHelper的大型内部类,它在.Net 4.0 中发生了很大变化。我不建议提取它。 -
.Net 框架的不同版本对其支持的内容使用不同的规则,因此我担心您创建的任何正则表达式:s 可能不会成为未来的证明。
Try Catch将是未来的证明,所以我同意 SLaks 的回答。否则,如果您真的想编写正则表达式,MailAddress 的文档描述了它使用的规则,因此您可以将其用作起点。 -
@ho:你不能使用正则表达式。电子邮件地址不构成常规语言。
-
@Curt:通常,这不是一个好的做法,但在这里,这是最好的选择。
标签: asp.net vb.net asp.net-3.5 email-validation email-address