Кто-нибудь знает, что регулярное выражение, используемое валидатором электронной почты в ASP.NET, является?
Регулярное выражение для проверки подлинности электронной почты ASP.NET
Ответ 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}))$" />