special

This webpage has been robot translated, sorry for typos if any. To view the original content of the page, simply replace the translation subdomain with www in the address bar or use this link.

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 тэг

Полезные регэкспы с наглядным разбором

Паттерн:

/^<([a-z]+)([^>]+)*(?:>(.*)<\/\1>|\s+\/>)$/

За открывающей скобкой < должно стоять слово из букв — имя элемента, затем могут быть атрибуты — любые символы, кроме закрывающей скобки >. Далее — любой текст (содержимое) и закрывающий тэг, т.е. <имя />, или как минимум один пробел, слэш и закрывающаю скобка (самозакрывающийся тэг).

6. Email

Полезные регэкспы с наглядным разбором

Паттерн:

/^([a-z0-9_\.-]+)@([a-z0-9_\.-]+)\.([a-z\.]{2,6})$/

Общий вид — логин@поддомен.домен. Логин, как и поддомен — слова из букв, цифр, подчёркиваний, дефисов и точек. А домен (имеется в виду 1го уровня) — это от 2 до 6 букв и точек.

Можно короче — /^([\w\._]+)@\1\.([a-z]{2,6}\.?)$/.

Это ещё и чуть правильнее — точка в домене первого уровня может встретиться только один раз и только в конце.

7. URL

Полезные регэкспы с наглядным разбором

Паттерн:

/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/

Первым делом — необязательный протокол (http:// или https://), затем последовательность букв, цифр, дефисов, подчёркиваний и точек (домены уровня > 1), потом домен нулевого уровня (от 2 до 6 букв и точек) и, наконец, файловая структура — набор слов из букв, цифр, дефисов, подчёркиваний и точек со слэшем в конце. Всё это может завершаться опять-таки слэшем.

Лучше так — /^(https?:\/\/)?([\w\.]+)\.([a-z]{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?)$/.


Created/Updated: 25.05.2018

';>