Донецкий техникум промышленной автоматики

Перевірити валідність e-mail

  1. Регулярний вираз для E-Mail
  2. підготовка форми
  3. Налаштування RegularExpressionValidator
  4. Код елементів управління
  5. А якщо в TextBox нічого не написати?

Валідність - це перевірка чого-небудь (в даному випадку введеного e-mail) на правильність, коректність. Тобто e-mail повинен бути обов'язково з символом «@», зліва від якого і праворуч щось написано. Також справа повинна бути вказана доменна зона, наприклад, «.ru».

Часто користувачеві необхідно вказати свій e-mail, наприклад, при реєстрації на сайті. І цілком розумно зробити так, щоб користувач не міг вказати іншу інформацію, яка не є e-mail.

Для такого роду перевірок в ASP.NET існує ряд спеціальних елементів управління, розташованих в секції «Validation».

Регулярний вираз для E-Mail

Для перевірки валідності e-mail ми будемо використовувати.

У Вікіпедії написано, що регулярні вирази - система синтаксичного розбору текстових фрагментів по формалізованого шаблоном, заснована на системі запису зразків для пошуку.

Регулярний вираз для e-mail виглядає наступним чином:

[\ W \ d - \.] + @ ([\ W \ d -] + (\. [\ W \ -] +) +)

Так, для тих, хто не знайомий з регулярними виразами, це може здатися набором символів, але це працює. Детальніше про регулярні вирази рекомендую прочитати в Вікіпедії.

підготовка форми

Нам знадобляться наступні компоненти:
1. Поле для введення - TextBox;
2. Валідатор RegularExpressionValidator.
3. Label, який буде перед TextBox для пояснення, що ж в поле потрібно написати користувачеві, але це зовсім не обов'язково (це тільки в якості навчання)

З першим і третім пунктами складнощів виникнути не повинно, змінити текст в Label на «e-mail» не проблема.

RegularExpressionValidator - це елемент управління, який перевіряє, чи відповідає значення пов'язаного елемента управління введенням зразком, заданому регулярним виразом.

RegularExpressionValidator повинен знаходитися в місці форми, де буде виводитися повідомлення про помилку, і обов'язково повинен бути поміщений всередину тега форми з параметром runat = server.

Трохи відійду від основної теми статті і пораджу сервіс навантажувального тестування doLoadTest . Після завершення розробки проекту не завадить виконати тестування навантаження і можливо щось оптимізувати.

Налаштування RegularExpressionValidator

Властивість ErrorMessage можете відредагувати на свій розсуд, це текст який буде виводитися на місці контрола в разі некоректного введення. Я написав «Поле e-mail заповнене не вірно».

Тепер потрібно вказати елемент управління з яким пов'язаний RegularExpressionValidator. Тобто з якого елементу управління буде братися текст і перевірятися по регулярному виразу. У нашому випадку потрібно вказати (якщо ви не міняли ID контрола TextBox):

ControlToValidate = "TextBox1"

Далі потрібно вказати той самий регулярний вираз, яке я написав на самому початку:

ValidationExpression = "[\ w \ d - \.] + @ ([\ W \ d -] + (\. [\ W \ -] +) +)"

Ну і останнє, що потрібно зробити це:

Display = "Dynamic"

Властивість Display отримує або задає поведінку при відображенні повідомлення про помилку в елементі керування перевірки. Якщо встановити властивість рівним Dynamic, то перевірка буде здійснюватися після того, як компонент втратить фокус.

Код елементів управління

Ось так виглядає код у мене:

<Asp: Label ID = "Label1" runat = "server" Text = "email:" /> <asp: TextBox ID = "TextBox1" runat = "server"> </ asp: TextBox> <asp: RegularExpressionValidator ID = " RegularExpressionValidator1 "runat =" server "ErrorMessage =" Поле e-mail заповнене не вірно "ControlToValidate =" TextBox1 "ValidationExpression =" [\ w \ d - \.] + @ ([\ w \ d -] + (\. [ \ w \ -] +) +) "Display =" Dynamic "> </ asp: RegularExpressionValidator>

Ось вобщем то і все. Запускаємо і пробуємо.

А якщо в TextBox нічого не написати?

Іноді це допускається, а іноді немає, наприклад, у випадку якщо розробник вирішив, що e-mail повинен бути обов'язково введений.

Якщо нічого в текстове поле не вводити, то RegularExpressionValidator просто «промовчить».

Як завжди в програмуванні, рішення даної проблеми можна реалізувати по різному. Можна в обробнику кнопки перевірити TextBox, і повідомити користувачеві, що поле обов'язкове для введення. Але є варіант значно простіше - елемент управління RequiredFieldValidator.

RequiredFieldValidator перетворює пов'язаний елемент управління в обов'язкове поле. Т. е. Пов'язане з ним поле TextBox має бути обов'язково заповнене.

А якщо в TextBox нічого не написати?