2015-11-23 3 views
-1

Есть ли способ сделать проверку ввода текстового поля для адресов электронной почты в wpf C#? Regex или выражение для проверки или что-нибудь, что может помочь, лучше всего с примером кода и некоторыми инструкциямиПроверка правильности ввода адреса электронной почты

+1

Посмотрите на соответствующий столбец справа. Тысячи ответ для этого, просто поиск. – Steve

+0

Причина, по которой я спросил, это потому, что ответы на другие подобные вопросы старые. и я подумал, может быть, есть что-то более легкое и более современное! – Tinaira

ответ

5

В событии text_changed вы можете передать значение текстового поля в класс-помощник.

public static class ValidatorExtensions 
{ 
    public static bool IsValidEmailAddress(this string s) 
    { 
     Regex regex = new Regex(@"^[\w-\.][email protected]([\w-]+\.)+[\w-]{2,4}$"); 
     return regex.IsMatch(s); 
    } 
} 

Теперь на текст изменен случае вы можете проверить вход

private void myTextBox_TextChanged(object sender, EventArgs e) 
{ 
    bool result = ValidatorExtensions.IsValidEmailAddress(myTextBox.Text); 
} 
+0

не могли бы вы рассказать мне, что писать на событие text_changes, потому что я немного запутался прямо сейчас – Tinaira

+0

Я сделал пример немного более ясным, надеюсь, это поможет! – Justin

+0

Я сделал это с утверждением if, он тоже работал, и с событием lostfocus ... В любом случае, спасибо много .... Возможно ли описать регулярное выражение, чтобы я мог его понять. – Tinaira

4

Есть несколько способов, чтобы проверить, если адрес электронной почты является действительным

About System.Net.Mail.MailAddress
About Regex Expression

static void Main(string[] args) 
     { 
      var validMail = "[email protected]"; 
      var invalidMail = "123"; 
      Console.WriteLine("IsValidMailAddress1 Test"); 
      Console.WriteLine(string.Format("Mail Address : {0} . is valid : {1}", validMail, IsValidMailAddress1(validMail))); 
      Console.WriteLine(string.Format("Mail Address : {0} . is valid : {1}", invalidMail, IsValidMailAddress1(invalidMail))); 

      Console.WriteLine("IsValidMailAddress2 Test"); 
      Console.WriteLine(string.Format("Mail Address : {0} . is valid : {1}", validMail, IsValidMailAddress2(validMail))); 
      Console.WriteLine(string.Format("Mail Address : {0} . is valid : {1}", invalidMail, IsValidMailAddress2(invalidMail))); 

     } 


     static bool IsValidMailAddress1(string mail) 
     { 
      try 
      { 
       System.Net.Mail.MailAddress mailAddress = new System.Net.Mail.MailAddress(mail); 

       return true; 
      } 
      catch 
      { 
       return false; 
      } 
     } 

     static bool IsValidMailAddress2(string mailAddress) 
     { 
      return Regex.IsMatch(mailAddress, @"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"); 
     } 
+0

Я создаю приложение wpf ... можете ли вы рассказать мне, как это сделать? для wpf? – Tinaira

+0

На самом деле это очень похоже. Вы можете создать метод в своем вспомогательном классе. Вы можете звонить из любой точки мира. –

Смежные вопросы