4

我尝试实现一个相当简单的电子邮件验证功能,即使输入是有效的电子邮件,它似乎也会返回错误匹配。我已经搜索了现有正则表达式的任何问题,但它似乎是正确的。

即使匹配返回错误值,程序也会进入下一个验证级别(它不应该这样做)。

这是电子邮件验证功能。

Function EmailAddressChecker(ByVal emailAddress As String) As Boolean
        Dim regExPattern As String = "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$"
        Dim emailAddressMatch As Match = Regex.Match(emailAddress, regExPattern)
        If emailAddressMatch.Success Then
            Return True
        Else
            Return False
        End If
End Function

对于调用电子邮件验证功能的表单验证。

If (String.IsNullOrEmpty(EmailTextBox.Text) OrElse EmailAddressChecker(EmailTextBox.ToString)) Then
            MessageBox.Show("Please enter a valid email addresss")
            Return False
End If

对所有这些的调用发生在单击事件上,该事件触发级联的 If 语句检查是否所有字段都已设置。

跳过一大块代码,点击事件询问“AreFieldsSet <> True”是否。“AreFieldsSet”函数内部包含多个输入的所有验证;其中之一是电子邮件验证 if 语句。

4

4 回答 4

4

电子邮件是大写的吗?如果他们不是,他们将不匹配。

如果要修改 Regex 使其不区分大小写,请使用以下命令:

"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$"
于 2012-04-17T17:23:05.670 回答
0

要验证您需要使用 Regex 对象的 IsMatch 函数的电子邮件地址,它会评估条目电子邮件地址是否有效。

Function EmailAddressChecker(ByVal emailAddress As String) As Boolean
   Dim r As System.Text.RegularExpressions.Regex = Nothing
    Dim regExPattern As String = "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$"

    If r.IsMatch(emailAddress ,regExPattern ) Then
        Return True
    Else
        Return False
    End If
End Function
于 2012-04-17T17:26:10.693 回答
0

您可以尝试使用此代码进行表单验证If (String.IsNullOrEmpty(EmailTextBox.Text) OrElse EmailAddressChecker(EmailTextBox.ToString)<>true) Then MessageBox.Show("Please enter a valid email addresss") Return False End If

于 2015-02-17T10:22:05.840 回答
0
Public Shared Function ValidEmailAddress(ByVal emailAddress As String, ByRef errorMessage As String) As Boolean    

       If emailAddress.IndexOf("@") > -1 Then
        If (emailAddress.IndexOf(".", emailAddress.IndexOf("@")) > emailAddress.IndexOf("@")) AndAlso emailAddress.Split(".").Length > 0 AndAlso emailAddress.Split(".")(1) <> "" Then
            errorMessage = ""
            Return True
        End If
    End If      
    Return False
End Function
于 2016-04-21T13:03:39.800 回答