1

嗨,我遇到的问题是我试图验证一个文本框以确保输入了电子邮件地址...我复制了别人的代码,然后将其更改为适合我的程序。但是即使输入了有效的电子邮件仍然是说无效的电子邮件条目

Private Sub EmailTextBox_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles EmailTextBox.Validating
    Dim temp As String
    temp = EmailTextBox.Text
    Dim conditon As Boolean
    emailaddresscheck(temp)
    If emailaddresscheck(conditon) = False Then
        MessageBox.Show("Please enter your email address correctly", "Incorrect Email Entry")
        EmailTextBox.Text = ""
        EmailTextBox.BackColor = Color.Blue
    Else
        EmailTextBox.BackColor = Color.Green
    End If

End Sub


Private Function emailaddresscheck(ByVal emailaddress As String) As Boolean
    Dim pattern As String = "^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$"
    Dim emailAddressMatch As Match = Regex.Match(emailaddress, pattern)
    If emailAddressMatch.Success Then
        emailaddresscheck = True
    Else
        emailaddresscheck = False
    End If
End Function

Private Sub EmailTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EmailTextBox.TextChanged
    EmailTextBox.BackColor = Color.White
    Dim temp As String
    temp = EmailTextBox.Text
    Dim conditon As Boolean
    emailaddresscheck(temp)
    : If emailaddresscheck(conditon) = True Then
        MessageBox.Show("Please enter your email address correctly", "Incorrect Email Entry")
        EmailTextBox.Text = ""
        EmailTextBox.BackColor = Color.Yellow
    Else
        EmailTextBox.BackColor = Color.Green
    End If
End Sub

使用的颜色是绿色和黄色,但我更改了框的颜色以识别问题所在.. 框显示为蓝色,因此错误...我假设在这段代码中出现了错误。

Private Function emailaddresscheck(ByVal emailaddress As String) As Boolean
    Dim pattern As String = "^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$"
    Dim emailAddressMatch As Match = Regex.Match(emailaddress, pattern)
    If emailAddressMatch.Success Then
        emailaddresscheck = True
    Else
        emailaddresscheck = False
    End If
End Function

在此先感谢.. :) x

4

4 回答 4

5

检查电子邮件地址是否有效的一种简单方法是尝试从中创建 MailAddress:

Try
    Dim testAddress = New MailAddress(email)
Catch ex As FormatException
    ' not a valid email address
End Try
于 2012-04-12T18:25:50.013 回答
3

检查下面的代码,我已经改变了一点

Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        TextBox1.BackColor = Color.White
        Dim temp As String
        temp = TextBox1.Text
        'Dim conditon As Boolean = False
        If emailaddresscheck(temp) = True Then
            ': If emailaddresscheck(conditon) = True Then
            TextBox1.BackColor = Color.Green
        Else
            'MessageBox.Show("Please enter your email address correctly", "Incorrect Email Entry")
            'TextBox1.Text = ""
            TextBox1.BackColor = Color.Yellow
        End If

    End Sub

我已停止该消息,因为除非您复制和粘贴,否则它将永远不允许输入有效的电子邮件。

也试试这个模式

Dim pattern As String = "\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
于 2012-04-12T19:03:11.197 回答
0

您在错误的条件下提供消息框,否则您的代码是正确的。只需如下更改编码即可。

If emailaddresscheck(conditon) = True Then
           msgbox ("Correct email id")
Else
   MessageBox.Show("Please enter your email address correctly", "Incorrect Email Entry")
    EmailTextBox.Text = ""

End If

以供参考:

Function EmailAddressCheck(ByVal emailAddress As String) As Boolean

        Dim pattern As String = "^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$"
        'Dim pattern As String = "\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
        Dim emailAddressMatch As Match = Regex.Match(emailAddress, pattern)
        If emailAddressMatch.Success Then
            EmailAddressCheck = True
        Else
            EmailAddressCheck = False
        End If

End Function

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        'EmailAddressCheck(TextBox6.Text)
        If EmailAddressCheck(TextBox6.Text) = True Then
            MessageBox.Show("Please enter your email address correctly", "Incorrect Email Entry")
            TextBox6.Text = ""
        Else
            MsgBox("correct")
        End If
End Sub
于 2013-12-15T11:48:35.167 回答
0

rivate Function validateEmail(ByVal Email As String)
        Try
            Dim myEmails As String() = Email.Split(",")
            Dim isV As Boolean = True
            For i As Integer = 0 To myEmails.Length - 1
                ' Validate One by Ibe
                isV = Global.ValidateEmail.IsValidEmail(myEmails(i).ToString)
                If (isV = False) Then
                    Return False
                End If
            Next
            Return isV
        Catch ex As Exception
        End Try
    End Function
  1. 将您的电子邮件地址作为字符串传递,这很简单。它将返回一个布尔值。
于 2015-04-02T08:14:28.163 回答