Подтвердить что ты не робот

Регулярное выражение для проверки подлинности электронной почты ASP.NET

Кто-нибудь знает, что регулярное выражение, используемое валидатором электронной почты в ASP.NET, является?

4b9b3361

Ответ 1

Вот регулярное выражение для Адрес электронной почты Интернета с помощью RegularExpressionValidator в .NET

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

Кстати, если вы поместите RegularExpressionValidator на страницу и перейдите к представлению дизайна, там будет поле ValidationExpression, которое вы можете использовать для выбора из списка выражений предоставляемые .NET. После выбора выражения, которое вы хотите, есть текстовое поле Validation:, которое содержит регулярное выражение, используемое для проверки достоверности

Ответ 2

Я больше не проверяю формат адреса электронной почты (ОК, я проверяю, есть ли на знаке и период после этого). Причиной этого является то, что говорит, что правильно отформатированный адрес - это даже их электронная почта? Вы должны отправить им электронное письмо и попросить их нажать ссылку или подтвердить код. Это единственный реальный способ проверки правильности адреса электронной почты и что человек действительно может получить электронное письмо.

Ответ 3

Адреса электронной почты очень сложно правильно проверить с помощью простого регулярного выражения. Здесь - довольно страшное регулярное выражение, которое якобы реализует RFC822, глава 6, спецификация действительных адресов электронной почты.

Не совсем ответ, но, возможно, связанный с тем, что вы пытаетесь выполнить.

Ответ 4

Мы можем использовать RegularExpressionValidator для проверки формата адреса электронной почты. Вам нужно указать регулярное выражение в свойстве ValidationExpression элемента управления RegularExpressionValidator. Поэтому он будет выглядеть как

 <asp:RegularExpressionValidator ID="validateEmail"    
  runat="server" ErrorMessage="Invalid email."
  ControlToValidate="txtEmail" 
  ValidationExpression="^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$" />

Также в обработчике событий кнопки или ссылки вам нужно проверить! Page.IsValid. Проверьте пример кода здесь: пример кода

Также, если вы не хотите использовать RegularExpressionValidator, вы можете написать простой метод проверки и в этом методе класс usinf RegEx пространства имен System.Text.RegularExpressions.

Пример проверки:

пример

Ответ 5

Для регулярного выражения я сначала рассмотрю этот веб-сайт: RegExLib.com

Ответ 6

Помимо проверки на стороне клиента с помощью Validator, я также рекомендую также проверять сторону сервера.

bool isValidEmail(string input)
{
    try
    {
        var email = new System.Net.Mail.MailAddress(input);
        return true;
    }
    catch
    {
        return false;
    }
}

Ответ 7

Это лучшее выражение для проверки адреса электронной почты:

^(?("")("".+?""@)|(([0-9a-zA-Z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z])@))(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$

Мы можем использовать это выражение в элементе RegularExpressionValidator для проверки формата адреса электронной почты:

<asp:RegularExpressionValidator ID="validateEmail"    
  runat="server" ErrorMessage="Invalid email."
  ControlToValidate="txtEmail" 
  ValidationExpression="^(?("")("".+?""@)|(([0-9a-zA-Z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z])@))(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$" />