我正在尝试验证我的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”)。因此,即使我输入正确的电子邮件格式,我也会收到电子邮件无效的退货声明。请正确的正则表达式模式,或者任何人都可以在这里发现任何错误。感谢
答案 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
很抱歉,简短的回答,目前我几乎没有时间指出错误的位置。