正则表达式Vb.Net



我正在尝试验证我的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")。因此,即使我输入了正确的电子邮件格式,我也会收到一个电子邮件无效的返回声明。请检查regex模式是否正确,或者有人能在这里发现我做错了什么吗。感谢

对我来说,这看起来像是一个Regex问题。试试这个:

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

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

最新更新