Найти тему
Легко в’IT

Регулярные выражения: начало

Сегодня одна из моих любимых тем! Возможно тебе покажется, что она пойдет, немного в разрез с предыдущим постом про то, что надо максимально упрощать код, но нет, этот инструмент, как и любой другой надо применять с умом. Итак, встречай, регулярные выражения, они же #RegExp!

Понимаю, тебе, если ты только начинаешь свой путь в IT это название ничего сейчас не сказало, но я это сделал нарочно, чтобы сказать, что каждый раз встречая регулярное выражение, которое написал не я, мне оно кажется таким же понятным как тебе первый абзац моего текста. Так что давай разбираться.

Вот представь: у тебя задача проверить, что пользователь ввел правильный эмейл, то есть тот, который соответствует некоему шаблону, возьмем самый простой, что там обязательно должен быть значек “@” и на конце .ru или .com. Подозреваю, что проверка будет выглядеть как-то так:

let email = "vasya@mail.ru"

// indexOf ищет символ в строке и возвращает его порядковый номер
if (email.indexOf("@") > 0 && email.indexOf(".ru") > 0 || email.indexOf(".com") > 0){
alert("E-Mail введен верно")
}
else {
alert("E-Mail введен неверно")
}

Это Самый-самый простой вариант, но смысл ясен, “круто”, правда? Писать столько текста чтобы проверить какой-то там имейл. А теперь страшная тайна, что домены .ru и .com не ограничиваются и доменов в интернете существует более 1500 и каждый год появляются все новые. Их все мы тоже будем проверять? А может 100 самых популярных возьмем? Это все ерунда. А что, если я скажу тебе, что можно составить специальный шаблон, по которому можно будет проводить такие проверки буквально в одну маленькую строчку?

let email = "vasya@mail.ru"

if (email.match('[a-z]+\\@[a-z]+\\.[a-z]+')){
alert("E-Mail введен верно")
}
else {
alert("E-Mail введен неверно")
}

Давай разберемся, что за абракадабру я написал. Мы пытаемся проверить эмейл до боли простым регулярным выражением, я намеренно его упростил чтобы ничего не мешало пониманию. И из него по сути нам с тобой надо разобрать только одну конструкцию, которая повторяется 3 раза: [a-z]+. Она состоит из трех частей:

  • Квадратные скобки: все, что в них может содержаться в тексте, который мы проверяем
  • Интервал a-z: то есть, любая из латинских букв в промежутке от a до z. Да, абсолютно верно: интервалы можно задавать любые: a-d, а-b или просто перечислить все буквы, которые мы хотим увидеть: qwerty
  • Ну и последний, так называемый квантификатор, в данном случае знак “+”, который говорит нам, что таких символов может быть 1 или более.

Прочитаем регулярное выражение: мы считаем верной такую строку, которая содержит:

  • [a-z]+ любое количество букв в начале
  • Символ “@”
  • [a-z]+ любое количество букв в середине
  • [a-z]+ любое количество букв в конце

А вот это уже действительно круто, не правда ли? Не переживай, если что-то осталось непонятным, я тут целый цикл статей задумал. Так что подписывайся, комментируй и зови друзей!