2009-09-07 2 views
0

Я совершенно новый для этого:Email проверка в C# (в Page_Load)

Я создал простую форму, которая содержит текстовое поле и кнопку, и в основном, когда адрес электронной почты введен правильно, некоторые результаты показаны ниже (это используется элемент управления gridview).

То, что я хочу сделать, это иметь некоторую проверку подлинности электронной почты для формы, но иметь валидацию, размещенную внутри page_load (в пределах нажатия кнопки), а не код за самой страницей. Я после простой проверки, которая проверила, что письмо было введено, в противном случае отображает всплывающее окно и правильный формат электронной почты ([email protected]) в C#

ответ

1

Я предполагаю, что данные будут отображаться только тогда, когда бутон (форма отправлена), если да, почему бы не добавить RegularExpression validator и не отобразить его в текстовое поле. Затем используйте следующее: regular expression to validate an email.

\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b 

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

Другое регулярное выражение для проверки формата электронной почты here.

+0

Приветствия, я посмотрю на них. – 2009-09-07 09:48:27

+0

Если вы используете элемент управления RegularExpressionValidator, и это поле требуется пользователю, обязательно используйте RequiredFieldValidator в качестве прежнего элемента управления не будет работать при пустых записях. Использование последнего гарантирует, что пустые записи пойманы. –

1

Обложка here.

Проблема в том, что не существует правильного регулярного выражения, которое охватывает всю грамматику RFC 5322. Все обычные регулярные выражения (например, сформулированные Шобэном) слишком строги - например: конечная часть [A-Z] {2,4}, которая должна покрывать домен верхнего уровня, будет тегировать почтовые сообщения в музее как недействительные; но есть намного более сложные примеры, такие как немецкие Umlauts (гласные мутации), которые были разрешены не слишком недавно.

Наш подход состоит в том, чтобы проверить надмножество, а не подмножество разрешенных писем в элементах проверки (например, интегрированный интегрированный в Visual Studio, который использует \ w + ([- +. '] \ W +) @ \ w + [-.]. \ ш +) \ ш + ([-.]. \ W +) *) и углубить чек обратно на сервер (возможно даже использовать веб-сервиса, как this one

BTW, here лучший регулярное выражение