01:06
Урок 21: Регулярные выражения

Курс по программированию на JavaScript

Урок 21: Регулярные выражения

Регулярные выражения (regex) — это мощный инструмент для поиска и манипулирования текстом. Они позволяют описывать шаблоны для строк и использовать их для проверки, поиска и замены текста. В этом уроке мы рассмотрим основы регулярных выражений и приведем примеры их использования.

Основы регулярных выражений

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

Примеры создания регулярных выражений

// Литерал регулярного выражения
let regex1 = /hello/;

// Конструктор RegExp
let regex2 = new RegExp('hello');
// Регулярное выражение создано

Основные метасимволы

Регулярные выражения включают множество метасимволов для создания сложных шаблонов. Вот некоторые из них:

  • . — любой одиночный символ, кроме новой строки.
  • ^ — начало строки.
  • $ — конец строки.
  • * — ноль или более повторений предыдущего символа.
  • + — одно или более повторений предыдущего символа.
  • ? — ноль или одно повторение предыдущего символа.
  • \d — любая цифра (эквивалентно [0-9]).
  • \w — любая буква, цифра или подчеркивание (эквивалентно [A-Za-z0-9_]).
  • \s — любой пробельный символ (включая пробел, табуляцию, новую строку).

Примеры использования

Рассмотрим несколько примеров использования регулярных выражений в JavaScript.

Пример 1: Проверка строки на соответствие шаблону

Метод test проверяет, соответствует ли строка регулярному выражению.

// Пример проверки строки на соответствие шаблону
let regex = /hello/;
console.log(regex.test('hello world')); // true
console.log(regex.test('world')); // false
true
false

В этом примере регулярное выражение /hello/ проверяет наличие подстроки "hello" в строке.

Пример 2: Поиск совпадений в строке

Метод match возвращает массив всех совпадений строки с регулярным выражением.

// Пример поиска совпадений в строке
let regex = /\d+/g;
let result = 'There are 123 apples and 456 oranges'.match(regex);
console.log(result); // ['123', '456']
['123', '456']

В этом примере регулярное выражение /\d+/g находит все последовательности цифр в строке.

Пример 3: Замена текста в строке

Метод replace заменяет совпадения строки с регулярным выражением на заданную подстроку.

// Пример замены текста в строке
let regex = /apples/;
let result = 'I like apples'.replace(regex, 'oranges');
console.log(result); // 'I like oranges'
'I like oranges'

В этом примере регулярное выражение /apples/ заменяет подстроку "apples" на "oranges".

Пример 4: Разделение строки

Метод split разделяет строку на массив, используя регулярное выражение в качестве разделителя.

// Пример разделения строки
let regex = /\s+/;
let result = 'This is a test'.split(regex);
console.log(result); // ['This', 'is', 'a', 'test']
['This', 'is', 'a', 'test']

В этом примере регулярное выражение /\s+/ используется для разделения строки по пробелам.

Упражнения

Упражнение 1: Проверка адреса электронной почты

Создайте регулярное выражение для проверки адреса электронной почты. Адрес электронной почты должен содержать символы до и после знака @, и домен после точки (например, example@mail.com). Используйте метод test для проверки различных строк.

Решение:

// Определение регулярного выражения для проверки адреса электронной почты
let regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;

console.log(regex.test('example@mail.com')); // true
console.log(regex.test('example@mail')); // false
console.log(regex.test('example.com')); // false
true
false
false

Объяснение: Мы создали регулярное выражение для проверки адреса электронной почты и протестировали его с использованием метода test. Адрес должен содержать символы до и после знака @ и домен после точки.

Упражнение 2: Извлечение чисел из строки

Создайте регулярное выражение для извлечения всех чисел из строки. Используйте метод match для поиска всех чисел и выведите их в консоль.

Решение:

// Определение регулярного выражения для извлечения чисел
let regex = /\d+/g;
let str = '123 apples, 456 oranges, and 789 bananas';
let numbers = str.match(regex);

console.log(numbers); // ['123', '456', '789']
['123', '456', '789']

Объяснение: Мы создали регулярное выражение для извлечения чисел из строки и использовали метод match для поиска всех чисел. Результат выводится в консоль в виде массива чисел.

Категория: JavaScript | Просмотров: 14 | Добавил: Admin | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: