使用Regex进行VB.NET电子邮件验证

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

即使匹配返回一个错误的值,程序正在进入下一个验证级别(它不应该)。

这是电子邮件验证功能。

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语句。


UpperCase中的电子邮件是? 如果他们不是,他们不会匹配。

如果你想修改Regex,使其不区分大小写,使用这个:

"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$"

要验证您需要使用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

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

链接地址: http://www.djcxy.com/p/92587.html

上一篇: VB.NET email validation with Regex

下一篇: How can i access the value of a local variable from within an expression tree