8 корисних регекспов з наочним розбором
Про мощі і гнучкості регулярних виразів написано багато, і їх використання давно вже є стандартом для різного роду операцій над текстом складається з букв, цифр і службових сівмолов. Мабуть, найчастіше регекспи працюють при валідації (перевірці) вводяться - тут їм практично немає альтернативи, якщо не брати до уваги громіздкий циклічний розбір функціями з купою неочевидних і незрозумілих перевірок.
1. Частина ЧПУ (человекопонятний URL)
патерн:
/ ^ [A-z0-9 -] + $ /
По суті, слово з дефісами.
2. юзернейм
патерн:
/ ^ [A-z0-9 _-] {3,16} $ /
Букви, цифри, дефіси та підкреслення, від 3 до 16 символів.
3. Пароль
патерн:
/ ^ [A-z0-9 _-] {6,18} $ /
Те ж, що і юзернейм, тільки від 6 до 18.
Більш коротко - / ^ [\ w _] {6,18} $ /.
Аналогічно для юзернейм.
4. шестнадцатиричном колір
патерн:
/ ^ #? ([A-f0-9] {6} | [a-f0-9] {3}) $ /
Символ # (необов'язково), потім слово, що складається з букв від a до f або цифр, довжиною 3 або 6.
5. XML тег
патерн:
/^<([az]+)([^>]+)*(?:>(.*)<\/\1>|\s+\/>)$/
За відкриває дужкою <повинно стояти слово з букв - ім'я елемента, потім можуть бути атрибути - будь-які символи, крім закриває дужки>. Далі - будь-який текст (вміст) і закриває тег, тобто <Ім'я />, або як мінімум один пробіл, слеш і закривающаю дужка (самозакривних тег).
6. Email
патерн:
/^([a-z0-9_\.-]+)@([a-z0-9_\.-]+)\.([az\.]{2,6})$/
Загальний вигляд - логин@поддомен.домен. Логін, як і піддомен - слова з букв, цифр, підкреслення, дефісів і точок. А домен (мається на увазі 1-го рівня) - це від 2 до 6 букв і точок.
Можна коротше - /^([\w\._]+)@\1\.([az]{2,6}\.?)$/.
Це ще й трохи правильніше - точка в домені першого рівня може зустрітися тільки один раз і тільки в кінці.
7. URL
патерн:
/^(https?:\/\/)?([\da-z\.-]+)\.([az\.]{2,6})([\/\w \ .-] *) * \ /? $ /
Насамперед - необов'язковий протокол (http: // або https: //), потім послідовність літер, цифр, дефісів, підкреслення і точок (домени рівня> 1), потім домен нульового рівня (від 2 до 6 букв і точок) і, нарешті, файлова структура - набір слів з букв, цифр, дефісів, підкреслення і точок з слешем в кінці. Все це може завершуватися знову-таки слешем.
Краще так - /^(https?:\/\/)?([\w\.]+)\.([az]{2,6}\.?)(\/[\w\.]*) * \ /? $ /
8. IP адреса
патерн:
/ ^ (? ?: 25 [0-5] | 2 [0-4] [0-9] | [01]? [0-9] [0-9]?) \.) {3} (?: 25 [0- 5] | 2 [0-4] [0-9] | [01]? [0-9] [0-9]?) $ /
4 групи цифр (від 1 до 3 цифр в кожній) розділені крапками. Якщо група складається з 3 символів, то перший з них - 1 або 2; якщо 1, то інші від 0 до 9, а якщо 2 - то другий від 0 до 5; якщо другий символ від 0 до 4, то третій - від 0 до 9, а якщо другий 5 - то третій від 0 до 5. Якщо ж група складається з 2 символів, то перший - від 1 до 9, другий - від 0 до 9 . У випадку односимвольних групи цим символом може бути цифра від 1 до 9.
Так правильніше - / ^ (? ?: 25 [0-5] | 2 [0-4] \ d | [01]? \ D \ d?) \.) {3} (?: 25 [0-5] | 2 [0-4] \ d | [01]? \ d \ d?) $ /.
Коментарі
Коментуючи, пам'ятайте про те, що зміст і тон Вашого повідомлення можуть зачіпати почуття реальних людей, проявляйте повагу та толерантність до своїх співрозмовників навіть у тому випадку, якщо Ви не поділяєте їхню думку, Ваша поведінка за умов свободи висловлювань та анонімності, наданих інтернетом, змінює не тільки віртуальний, але й реальний світ. Всі коменти приховані з індексу, спам контролюється.