ASP.NET email validator regex - PullRequest
       13

ASP.NET email validator regex

40 голосов
/ 10 ноября 2009

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

Ответы [ 6 ]

96 голосов
/ 10 ноября 2009

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

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

Кстати, если вы поместите RegularExpressionValidator на страницу и перейдете в представление конструктора, появится поле ValidationExpression , которое можно использовать для выбора из списка выражений, предоставленных .СЕТЬ. Как только вы выберете нужное выражение, появится выражение проверки: текстовое поле, содержащее регулярное выражение, используемое для валидатора

24 голосов
/ 10 ноября 2009

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

18 голосов
/ 10 ноября 2009

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

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

13 голосов
/ 26 марта 2012

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

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

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

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

Проверьте пример:

пример

4 голосов
/ 10 ноября 2009

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

1 голос
/ 31 марта 2017

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

bool isValidEmail(string input)
{
    try
    {
        var email = new System.Net.Mail.MailAddress(input);
        return true;
    }
    catch
    {
        return false;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...