Найти тему
JavaScriptPro100

Решаем задачу собеседования - получаем @mail из строки спомощью регулярных выражений JavaScript.

Регулярные выражения - это специальный язык для поиска и обработки текстовой информации. Они помогают искать определенный текст в большом объеме данных. Например, в коде, который ты дал, с помощью регулярных выражений мы можем найти все почтовые адреса, которые есть в строке, и извлечь их в рабочем процессе.

Опережение и ретроспектива в регулярных выражениях - это специальные символы, позволяющие нам проверять, есть ли определенный текст перед или после другого текста, не включая этот текст в результат.

Давайте объясним это на примере. Представьте, что у вас есть строка, которая выглядит так: "Today is a beautiful day". Вы хотите найти слово "day", только если оно следует за словом "beautiful". Для этого вы можете использовать опережение.

Вот как это сделать в регулярном выражении на JavaScript:

JavaScript пример кода "опережение"
JavaScript пример кода "опережение"

Здесь мы используем опережение (?<=beautiful ), которое проверяет, есть ли слово "beautiful" перед словом "day", но не включает его в результат. Таким образом, результатом будет только слово "day".

Теперь представьте, что вам нужно найти слово "beautiful", только если оно предшествует слову "day". Для этого вы можете использовать ретроспективу.

Вот как это сделать в регулярном выражении на JavaScript:

JavaScript пример кода "ретроспектива"
JavaScript пример кода "ретроспектива"

Здесь мы используем ретроспективу (?=day), которая проверяет, есть ли слово "day" после слова "beautiful", но не включает его в результат. Таким образом, результатом будет только слово "beautiful".

Надеюсь, это объяснение помогло вам понять опережение и ретроспективу в регулярных выражениях.

А теперь вернемся к решению тестового задания, получаем @mail двумя методами: с помощью метода строк и регулярных выражений, ниже будет ссылка на страничку регулярных выражений https://regex101.com

Снимок экрана странички https://regex101.com с решением.
Снимок экрана странички https://regex101.com с решением.

JavaScript код решения с помощью метода строк (string) и регулярных выражений (Regular expressions).
JavaScript код решения с помощью метода строк (string) и регулярных выражений (Regular expressions).
Результат кода regular expressions JavaScript в терминале (Terminal).
Результат кода regular expressions JavaScript в терминале (Terminal).

Данный код определяет функцию cutEmail, которая принимает на вход email-адрес и возвращает только часть адреса, находящуюся внутри угловых скобок, если они есть. Если угловых скобок нет, функция вернет весь email-адрес.

Для поиска
email-адреса, находящегося между угловых скобок, в функции используется регулярное выражение.

В первых двух строках кода определяются две переменные
str1 и str2, которые используются для того, чтобы продемонстрировать работу функции на двух примерах email-адресов.

В конце кода функция вызывается дважды на этих двух примерах, и результат ее работы выводится в консоль с помощью функции
console.log().

-6