Как я могу использовать RegEx, чтобы убедиться, что в моем TextBox написано правильное письмо? - PullRequest
0 голосов
/ 03 октября 2009

Я - новичок в RegEx, и я уверен, что это будет замечательно, если я знаю , как использовать его. : P

У меня есть пара текстовых ящиков, и мне было интересно, может ли кто-нибудь мне сказать, что мне нужно.

В текстовом поле EMail я бы хотел убедиться, , что пользователь пишет в действительное письмо. xxx@yyy.zzz Есть ли у RegEx способ помочь мне?

Мне бы очень хотелось, чтобы форматировал имя, которое записывает пользователь. Поэтому, если пользователь пишет в " SerGIo TAPIA gutTIerrez , я хочу отформатировать эту строку (за кадром, прежде чем сохранить ее) в" Sergio Tapia Gutierrez"Может ли RegEx сделать это?

Большое спасибо, ТАК.

(inb4 Рекс: P)

Ответы [ 4 ]

3 голосов
/ 03 октября 2009

Полное и точное выражение для проверки электронной почты на удивление сложно, я надеюсь, что вы можете использовать Google, чтобы найти несколько примеров.

Общее правило проверки электронной почты состоит в том, чтобы фактически попытаться отправить электронное письмо.

1 голос
/ 03 октября 2009

Ну, это легко! :)

  1. нет, не существует регулярного выражения, которое может проверять * адреса электронной почты;
  2. нет, регулярное выражение не может преобразовать "SerGIo TAPIA gutTIerrez" в "Sergio Tapia Gutierrez". Конечно, некоторые языки, такие как Perl (и, возможно, другой), могут смешивать некоторые интересные вещи внутри регулярных выражений, чтобы сделать это, но это не регулярное выражение, которое фактически выполняет преобразование. Regex соответствует только тексту, простому и простому.

* под «действительным» я имею в виду, существует ли адрес на самом деле.

0 голосов
/ 03 октября 2009

Это один из способов, но есть много других.

public static bool isEmail(string emailAddress)
{
   if(string.IsNullOrEmpty(emailAddress))
      return false;

   Regex EmailAddress = new Regex(@"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$");

   return EmailAddress.IsMatch(emailAddress);
}
0 голосов
/ 03 октября 2009

http://www.cambiaresearch.com/c4/bf974b23-484b-41c3-b331-0bd8121d5177/Parsing-Email-Addresses-with-Regular-Expressions.aspx

public bool TestEmailRegex(string emailAddress)
{

//    string patternLenient = @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*";
//    Regex reLenient = new Regex(patternLenient);

    string patternStrict = @"^(([^<>()[\]\\.,;:\s@""]+" 
        + @"(\.[^<>()[\]\\.,;:\s@""]+)*)|("".+""))@" 
        + @"((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" 
        + @"\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+" 
        + @"[a-zA-Z]{2,}))$";

    Regex reStrict = new Regex(patternStrict);

//    bool isLenientMatch = reLenient.IsMatch(emailAddress);
//    return isLenientMatch;

    bool isStrictMatch = reStrict.IsMatch(emailAddress);
    return isStrictMatch;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...