2012-04-12 41 views
1

喜有是,即時通訊試圖驗證一個文本框,使輸入了一定的電子郵件地址... 我複製別人的代碼,然後改變它適合我的程序問題IM。然而,即使輸入一個有效的電子郵件仍然是說無效的電子郵件條目文本框電子郵件驗證

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 

使用的顏色分別爲綠色和黃色,但我改變了箱子的顏色來識別人的問題是..盒子呈現藍色所以錯誤.. .im假設在這段代碼中很糟糕。

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

+0

我喜歡你的正則表達式。 – Ben 2012-10-11 08:28:40

回答

2

檢查下面的代碼,我改變了一點它

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+)*" 
+0

在你的代碼: '如果emailaddresscheck(臨時)= true,那麼', '=真' 是多餘的。 – Ben 2012-10-11 08:24:37

4

一個簡單的方法來檢查,如果電子郵件地址是有效的是嘗試創建從它MailAddress:

Try 
    Dim testAddress = New MailAddress(email) 
Catch ex As FormatException 
    ' not a valid email address 
End Try 
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 
+0

PLZ把所有的代碼示例,代碼間隔,有捲曲的護腕(「{}」)在編輯模式 – bresleveloper 2013-12-15 12:10:55

0

P

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. 通過你的電子郵件地址字符串,這是簡單和容易。它會返回一個布爾值。