正则表达式Vb.Net

时间:2012-07-23 10:58:37

标签: vb.net winforms

我正在尝试验证我的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

On-Stepping通过此代码,它跳过ValidateEmailAddress函数中的Return True语句,并跳过isValid()函数中的MessageBox.Show(“Email Valid”)。因此,即使我输入正确的电子邮件格式,我也会收到电子邮件无效的退货声明。请正确的正则表达式模式,或者任何人都可以在这里发现任何错误。感谢

1 个答案:

答案 0 :(得分: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

很抱歉,简短的回答,目前我几乎没有时间指出错误的位置。