Список полезных регулярных выражений
Если вам нужно проверить правильно ли ввел человек номер телефона или что-то еще, вы можете воспользоваться регулярными выражениями.
Регулярные выражения — это условие, с помощью которого бот может проверять формат введенных данных (например, что человек ввел именно номер телефона, а не что-то иное)

Для сравнения по регулярному выражению, тип сравнения надо поставить "Регулярное выражение".
При сборе данных пользователь часто вводит не то, что его просят ввести. Приведу типовую схему проверку корректности ввода номера телефона. В случае, если пользователь ввел не номер телефона, бот попросит его повторить ввод.


Из блока, спрашивающего номер телефона идет 2 соединения. Одно без условия, а второе с условием регулярное выражение российского номера телефона:
^((\+7|7|8)+([0-9]){10})$
Соединение с условием как раз добавляет его в заявку и сработает только тогда, когда встретится корректный номер телефона. Второе соединение сработает во всех других случаях, так как у него ниже приоритет. По второму соединению пользователю скажут, что он ввел некорректные данные, и направят обратно вводить номер телефона.
Список полезных регулярных выражений
Ввод только цифр, начиная с 1: ^[1-9]+[0-9]*$
Ввод только цифр, начиная с 0: ^[0-9]+[0-9]*$
Номер кредитки: [0-9]{13,16}
ICQ: ([1-9])+(?:-?\d){4,}
Номер телефона(Россия): ^((\+7|7|8)+([0-9]){10})$
Номер телефона ^(\+)?((\d{2,3}) ?\d|\d)(([ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$
Фамилия+Имя или же ФИО полностью
^[а-яА-ЯёЁa-zA-Z]+ [а-яА-ЯёЁa-zA-Z]+ ?[а-яА-ЯёЁa-zA-Z]+$
Набор из букв и цифр (латиница): ^[a-zA-Z0-9]+$
Набор из букв и цифр (латиница + кириллица): ^[а-яА-ЯёЁa-zA-Z0-9]+$
Домен (например abcd.com): ^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$
URL (например abcd.com): (https?):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*
IPv4: ((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)
IPv6: ((^|:)([0-9a-fA-F]{0,4})){1,8}$
Имя пользователя (с ограничением 2-20 символов, которыми могут быть буквы и цифры, первый символ обязательно буква): ^[a-zA-Z][a-zA-Z0-9-_\.]{1,20}$
Пароль (Строчные и прописные латинские буквы, цифры): ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*$
Пароль (Строчные и прописные латинские буквы, цифры, спецсимволы. Минимум 8 символов): (?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$
Дата в формате YYYY-MM-DD: [0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01]) UPD. Более строгая проверка: (19|20)\d\d-((0[1-9]|1[012])-(0[1-9]|[12]\d)|(0[13-9]|1[012])-30|(0[13578]|1[02])-31)
Дата в формате DD/MM/YYYY: (0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d
Дата в формате DD.MM.YYYY: (0[1-9]|[12][0-9]|3[01])[.](0[1-9]|1[012])[.](19|20)\d\d
Целые числа и числа с плавающей точкой (разделитель точка): \-?\d+(\.\d{0,})?
UUID: ^[0-9A-Fa-f]{8}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{12}$
Широта или долгота: -?\d{1,3}\.\d+
UPD. E-mail: ^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$
UPD. URL на латинице. Если нужно распознавать и кириллические домены, необходимо изменить все «a-z0-9» на «а-яёa-z0-9» и добавить в список доменных зон «рф»: ~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:ru|su|com|net|org|mil|edu|arpa|gov|biz|info|aero|inc|name|[a-z]{2})|(?!0)(?:(?!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(?:/[a-z0-9.,_@%&?+=\~/-]*)?(?:#[^ '\"&]*)?$~i
UPD. Время в формате HH:MM:SS: ^([0-1]\d|2[0-3])(:[0-5]\d){2}$
UPD. Mac-адрес: ([0-9a-fA-F]{2}([:-]|$)){6}$|([0-9a-fA-F]{4}([.]|$)){3}
Существует большое количество регулярных выражений, если в этом списке вы не нашли нужное, стоит обратиться к поисковым системам.
Тестировать регулярные выражения удобно на сайте: https://regex101.com/
Видеообзор
Last updated
Was this helpful?