2009-10-13 104 views
0

我正在使用Windows窗體。窗體上的電子郵件驗證

我只想驗證我的文本框(或屏蔽文本框)的電子郵件ID。

任何人都可以告訴我這個想法嗎?

+5

14個問題,而不是一個接受的答案? – 2009-10-13 06:56:45

+0

FredrikMörk是對的,馬克回答了問題,或者您將來得不到答案 – 2009-10-13 07:01:25

+0

您可以使用正則表達式嗎? 谷歌c#正則表達式和正則表達式電子郵件... – Peter 2009-10-13 06:56:06

回答

2

嘗試使用正則表達式像 @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"

1

可以使用System.Net.Mail.MailAdress類,表示郵件地址的構造函數。

嘗試用您的字符串初始化一個實例並捕獲異常,如果驗證失敗則拋出異常。事情是這樣的:

try 
{ 
    new System.Net.Mail.MailAddress(this.textBox.Text); 
} 
catch(ArgumentException) 
{ 
    //textBox is empty 
} 
catch(FormatException) 
{ 
    //textBox contains no valid mail address 
} 
1

嘗試正則表達式

@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" 

或代碼

string email=textbox1.text; 
if(email.lastindexof("@")>-1) 
{ 
//valid 
} 
else 
{ 

} 
1

string email=textbox1.text;

System.Text.RegularExpressions.Regex expr= new System.Text.RegularExpressions.Regex(@"^[a-zA-Z][\w\.-]{2,28}[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$");

檢查你的電子郵件地址0
`if (expr.IsMatch(email)) 
      MessageBox.Show("valid"); 

     else MessageBox.Show("invalid");` 
0

試試這個:

private void emailTxt_Validating(object sender, CancelEventArgs e) 

{ 

System.Text.RegularExpressions.Regex rEmail = new System.Text.RegularExpressions.Regex(@"^[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]$"); 

     if (emailTxt.Text.Length > 0 && emailTxt.Text.Trim().Length != 0) 
     { 
      if (!rEmail.IsMatch(emailTxt.Text.Trim())) 
      { 
       MessageBox.Show("check email id"); 
       emailTxt.SelectAll(); 
       e.Cancel = true; 
      } 
     } 
    } 
0

我建議你使用這種方式,它的工作很適合我。

/* Add this reference */ 

using System.Text.RegularExpressions; 

--------------------------- 

if (!string.IsNullOrWhiteSpace(txtEmail.Text)) 
{ 
    Regex reg = new Regex(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"); 
    if (!reg.IsMatch(txtEmail.Text)) 
    { 
     Mensaje += "* El email no es válido. \n\n"; 
     isValid = false; 
    } 
}