- Формати E-mail адрес
- Формати ICQ-номерів
- Перевірка полів форм за допомогою регулярних виразів JavaScript
- Перевірка ICQ-номерів
- Перевірка E-mail адрес
- висновки
Часто при реєстрації на різних сайтах користувача просять залишити свій E-mail адресу. Щоб надалі не відбулося ніяких непорозумінь, інформацію про користувача слід перевіряти перед відправкою на сервер. Звичайно, все поля перевіряти необов'язково, але ті дані, які досить жорстко визначені і обмежені стандартами, необхідно перевірити. Зокрема до них відносяться телефонні номери, адреси електронної пошти та номера ICQ.
З огляду на той факт, що формат таких даних може бути досить різноманітним, слід брати до уваги всі можливі варіанти.
У цій статті ми обмежимося розглядом форматів E-mail адрес і номерів ICQ.
Формати E-mail адрес
E-mail адресу - це спеціальний ідентифікатор, що складається з рядка символів, званої локальної частиною (local-part), за якою слідує знак @ (at-sign, зі ASCII-значенням 64), а потім розташована рядок з ім'ям домена (domain) . Тобто ідентифікатор має вигляд: local-part @ domain.
Локальна частина - це або рядок в лапках, або рядок, яка може бути розділена крапками. Якщо рядок може бути представлена в другій формі, то рекомендується використовувати саме цю форму, а не рядок в лапках.
Локальна частина може містити наступні символи:
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789.! # $% & "* + / - =? ^ _` {|} ~
Локальна частина відділена від доменної за допомогою символу @. Доменна частина ідентифікатора вказує хост, на який має бути доставлено лист.
У доменній частини дозволено використання наступних символів:
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 .-
Локальна частина залежить від доменної, в тому сенсі, що її формат може змінюватися в залежності від політики окремого хоста, використовуваного в якості доменної частини поштової скриньки.
Формати ICQ-номерів
Формати подання ICQ-номерів менш різноманітні, ніж E-mail адреси.
До складу номера ICQ може входити від 5 до 9 цифр. Часто використовується уявлення в форматі: XXX-XXX-XXX. Однак, такий формат не універсальний, тому що, наприклад, 7-значні номери не можуть бути представлені в ньому однозначно. Тому рекомендується використання формату: XXXXXXXXX (з можливою кількістю знаків від 5 до 9).
Різноманітність за кількістю знаків в номері ICQ обумовлено тим, що спочатку, в момент появи сервісу користувачів реєстрували під 6-значними номерами. Потім коли кількості номерів стало не вистачати, кількість знаків доводилося збільшувати, і на сьогоднішній день користувачі можуть зареєструватися лише під 9-значними номерами. Однак, існують сайти, які продають 6, 7, 8-значні номери.
Перевірка полів форм за допомогою регулярних виразів JavaScript
Найбільш зручним способом перевірки введених даних є використання регулярних виразів.
Регулярний вираз - це шаблон, якому зіставляються введені дані (строкові дані). Вони називаються регулярними, так як можуть використовуватися для зіставлення обмеженого набору даних (заздалегідь визначеного формату).
Якщо ви хочете дізнатися більше про використання регулярних виразів в JavaScript, радимо звернутися до книги Томаса Пауелла і Фріца Шнайдера "Повний довідник по JavaScript: Друге видання". У книзі детально описані можливості мови JavaScript для роботи з регулярними виразами.
Перевірка ICQ-номерів
Спершу необхідно створити регулярний вираз, яке б відповідало формату ICQ-номера. У випадку з форматом XXXXXXXXX, регулярний вираз буде таким:
var pattern = / ^ \ d {5,9} $ /;
В JavaScript регулярні вирази обмежуються символами / с двох сторін. Конструкція \ d {5,9} означає, що рядок повинен складатися з цифр (\ d) і містити від 5 до 9 знаків ({5,9}). Символи ^ і $ говорять нам про те, що рядок повністю відповідає цим шаблоном, немає жодного символу до і після нього.
Таким чином, шаблоном будуть відповідати рядки, наприклад, такого виду: 20045697, 102145, 48574, 123456789. шаблон не відповідають рядки: 5422, 1234567890. Рядки містять символи, відмінні від цифрових шаблоном також не відповідають. Ми не розглядаємо формат XXX-XXX-XXX, так як він не універсальний. Користувача завжди слід повідомляти про те, в якому форматі необхідно ввести дані.
Перевірка E-mail адрес
Складання регулярного виразу для перевірки E-mail адрес є більш важким завданням. Формат E-mail адрес був описаний вище, тут ми вкажемо лише регулярний вираз:
var pattern = / ^ (([a-zA-Z0-9] | [! # $% \ * \ / \? \ | ^ \ {\} `~ & '\ + = -_]) + \.) * ([a-zA-Z0-9] | [! # $% \ * \ / \? \ | ^ \ {\} `~ & '\ + = -_]) + @ ([a-zA-Z0 -9 -] + \.) + [a-zA-Z0-9 -] + $ /;
Регулярний вираз записується на одному рядку, без переносів. Рядок означає, що спочатку можуть розташовуватися 0 або більше символів локальної частини, відмінних від точки, з подальшою крапкою, потім розташовуються 1 або більше символів локальної частини, відмінних від точки, потім символ @, потім доменна частина, що відповідає формату.
Для перевірки відповідності шаблоном в JavaScript використовується функція test, яка повертає true, якщо рядок відповідає шаблону і false у протилежному випадку.
var pattern = / ^ (([a-zA-Z0-9] | [! # $% \ * \ / \? \ | ^ \ {\} `~ & '\ + = -_]) + \.) * ([a-zA-Z0-9] | [! # $% \ * \ / \? \ | ^ \ {\} `~ & '\ + = -_]) + @ ([a-zA-Z0 -9 -] + \.) + [a-zA-Z0-9 -] + $ /; pattern.test ( "adam.trent. @ mail.stan.com"); // поверне false pattern.test ( "[email protected]"); // поверне true pattern.test ( "[email protected]"); // поверне true pattern.test ( "adam-trent..sponsor @ mail.stan.com"); // поверне false
висновки
Для забезпечення зручності заповнення форм, а також коректності введених даних необхідно правильно визначати допустимі для введення формати даних. Також потрібно інформувати користувача про те, в якому форматі слід вводити інформацію.
У плані реалізації перевірки форм найбільш вдалим є використання регулярних виразів, які дозволяють підібрати шаблон в переважній більшості випадків.
У статті використані матеріали документа RFC 2822 Internet Message Format .
Amp; "* + / - =?Adam-trent?