0

我正在尝试验证我的 vb.net windows 窗体应用程序的电子邮件地址,这是在另一个类中编写的验证电子邮件功能

Public Function ValidateEmailAddress(strEmailAddress As String) As Boolean

    Dim pattern As String
    pattern = "^([0-9a-zA-Z]([-\.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$"

    If Regex.IsMatch(strEmailAddress, pattern) Then
        Return True
    Else
        Return False
    End If

End Function

然后我通过编写这段代码从另一个类调用 IsValid 函数

 If ValidateEmailAddress(txtEmailAddress.Text) Then
        MessageBox.Show("Email Valid")
    Else
        MessageBox.Show("Email Not Valid")
    End If

单步执行此代码时,它会跳过 ValidateEmailAddress 函数中的 Return True 语句,也跳过 isValid() 函数中的 MessageBox.Show("Email Valid")。因此,即使我输入正确的电子邮件格式,我也会收到一封电子邮件无效的退货声明。请问正则表达式模式是否正确,或者任何人都可以在这里发现我做错了什么。谢谢

4

1 回答 1

0

对我来说,这看起来像是一个正则表达式问题。试试这个:

Public Function ValidateEmailAddress(strEmailAddress As String) As Boolean
    Dim EmailRegex As New Regex("^([a-zA-Z0-9_\-\.\']+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$")
    If EmailRegex.IsMatch(strEmailAddress) Then
        Return True
    Else
        Return False
    End If
End Function

很抱歉简短的回答,目前我几乎没有时间指出错误可能出在哪里。

于 2012-07-23T11:26:24.607 回答