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?) $ /.