我尝试实现一个相当简单的电子邮件验证功能,即使输入是有效的电子邮件,它似乎也会返回错误匹配。我已经搜索了现有正则表达式的任何问题,但它似乎是正确的。
即使匹配返回错误值,程序也会进入下一个验证级别(它不应该这样做)。
这是电子邮件验证功能。
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 语句。