什么是电子邮件地址的最佳正则表达式验证

Whats the best regex validation for email address

我想使用正则表达式为我的注册表单添加电子邮件验证

我已经尝试使用此代码正则表达式来验证我的电子邮件

Dim ValidateEmail As Boolean
ValidateEmail = Regex.IsMatch(EmailAddress.Text, "^([\w]+)@([\w]+)\.([\w]+)$", RegexOptions.IgnoreCase)

我试图在我的电子邮件地址中输入一些电子邮件。文本是我的变量名,但在输入一些点后出现错误:jannus.domingo@yahoo.com 在 Janus 之后,点是我得到的错误,但是在我删除 jannus.domingo@yahoo.com 上的点之后就没问题了。

与其乱搞不可读、冗长、难以维护且难以维护的正则表达式,不如在格式无效时尝试创建 MailAddress class with the string you get from the user. It will throw a FormatException 的实例。

这是一个简单的例子:

Function IsEmailAddressWellFormatted(ByVal address As String) As Boolean
    Try
        Dim address = New MailAddress(address)
        Return True
    Catch ex As FormatException
        Return False 
        ' We don't care about the actual exception here, 
        ' the fact that it's thrown is enough to know the string is not a valid format.
    End Try
End Function