Учебник по JS

ГЛАВНАЯ JS Введение JS Куда Вывод JS Заявления JS JS-синтаксис JS-комментарии JS-переменные JS Пусть Константа JS JS-операторы JS-арифметика Назначение JS JS-типы данных JS-функции JS-объекты JS-события JS-строки Строковые методы JS Поиск строки JS Шаблоны строк JS JS-номера Методы номеров JS JS-массивы Методы массива JS Сортировка массива JS Итерация массива JS Константа массива JS JS-даты Форматы даты JS Методы получения даты JS Методы установки даты JS JS-математика JS Случайный JS Булевы значения Сравнение JS JS-условия JS-переключатель JS цикл для Цикл JS для входа Цикл JS для Цикл JS во время Перерыв JS JS-итерации JS-наборы JS-карты JS Typeof Преобразование типов JS JS побитовый JS регулярное выражение JS-ошибки Область JS JS-подъем Строгий режим JS JS это ключевое слово Функция стрелки JS JS-классы JS JSON JS-отладка Руководство по стилю JS Лучшие практики JS JS-ошибки JS-производительность Зарезервированные слова JS

JS-версии

JS-версии JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE/пограничный История JS

JS-объекты

Определения объектов Свойства объекта Методы объекта Отображение объекта Средства доступа к объектам Конструкторы объектов Прототипы объектов Итерации объектов Наборы объектов Карты объектов Ссылка на объект

JS-функции

Определения функций Параметры функции Вызов функции Вызов функции Функция Применить Закрытие функций

JS-классы

Введение в класс Наследование классов Статический класс

JS асинхронный

Обратные вызовы JS JS асинхронный JS-обещания JS асинхронный/ожидание

JS HTML DOM

Дом Введение DOM-методы Документ DOM DOM-элементы DOM HTML DOM-формы ДОМ CSS DOM-анимации События ДОМ Слушатель событий DOM DOM-навигация DOM-узлы Коллекции DOM Списки узлов DOM

Спецификация браузера JS

JS-окно JS-экран Местоположение JS История JS JS-навигатор Всплывающее оповещение JS JS Тайминг JS-куки

JS-веб-API

Введение в веб-API API веб-форм API истории веб-поиска API веб-хранилища API веб-работника API веб-выборки API веб-геолокации

JS АЯКС

Введение в АЯКС AJAX XMLHttp АЯКС-запрос AJAX-ответ XML-файл AJAX АЯКС PHP АЯКС АСП База данных AJAX AJAX-приложения Примеры AJAX

JS JSON

Введение в JSON Синтаксис JSON JSON против XML Типы данных JSON Анализ JSON Строковая JSON JSON-объекты JSON-массивы JSON-сервер JSON PHP JSON HTML JSON JSONP

JS против JQuery

Селекторы jQuery JQuery HTML jQuery CSS JQuery DOM

JS-графика

JS-графика JS Холст JS сюжет JS Chart.js JS Google Диаграмма JS D3.js

JS-примеры

JS-примеры JS HTML DOM JS HTML-ввод HTML-объекты JS HTML-события JS JS-браузер JS-редактор JS-упражнения JS-викторина JS-сертификат

JS-ссылки

Объекты JavaScript HTML DOM-объекты


Регулярные выражения JavaScript


Регулярное выражение — это последовательность символов, формирующая шаблон поиска.

Шаблон поиска можно использовать для текстового поиска и операций замены текста.


Что такое регулярное выражение?

Регулярное выражение — это последовательность символов, формирующая шаблон поиска .

Когда вы ищете данные в тексте, вы можете использовать этот шаблон поиска, чтобы описать то, что вы ищете.

Регулярное выражение может состоять из одного символа или более сложного шаблона.

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

Синтаксис

/pattern/modifiers;

Пример

/w3schools/i;

Объяснение примера:

/w3schools/i   — это регулярное выражение.

w3schools   — это шаблон (для использования в поиске).

я   является модификатором (изменяет поиск, чтобы он был нечувствительным к регистру).


Использование строковых методов

В JavaScript регулярные выражения часто используются с двумя строковыми методами : search()и replace().

Метод search()использует выражение для поиска совпадения и возвращает позицию совпадения.

Метод replace()возвращает модифицированную строку, в которой заменяется шаблон.


Использование String search() со строкой

Метод search()ищет в строке указанное значение и возвращает позицию совпадения:

Пример

Используйте строку для поиска «W3schools» в строке:

let text = "Visit W3Schools!";
let n = text.search("W3Schools");

Результат в n будет:

6


Использование String search() с регулярным выражением

Пример

Используйте регулярное выражение для поиска «w3schools» в строке без учета регистра:

let text = "Visit W3Schools";
let n = text.search(/w3schools/i);

Результат в n будет:

6



Использование String replace() со строкой

Метод replace()заменяет указанное значение другим значением в строке:

let text = "Visit Microsoft!";
let result = text.replace("Microsoft", "W3Schools");

Используйте String replace() с регулярным выражением

Пример

Используйте регулярное выражение без учета регистра, чтобы заменить Microsoft на W3Schools в строке:

let text = "Visit Microsoft!";
let result = text.replace(/microsoft/i, "W3Schools");

Результат в рез будет:

Visit W3Schools!

Ты заметил?

Аргументы регулярного выражения (вместо строковых аргументов) можно использовать в приведенных выше методах.
Регулярные выражения могут сделать ваш поиск более эффективным (например, без учета регистра).


Модификаторы регулярных выражений

Модификаторы можно использовать для выполнения более глобального поиска без учета регистра:

Modifier Description Try it
i Perform case-insensitive matching
g Perform a global match (find all matches rather than stopping after the first match)
m Perform multiline matching

Шаблоны регулярных выражений

Скобки используются для поиска диапазона символов:

Expression Description Try it
[abc] Find any of the characters between the brackets
[0-9] Find any of the digits between the brackets
(x|y) Find any of the alternatives separated with |

Метасимволы — это символы со специальным значением:

Metacharacter Description Try it
\d Find a digit
\s Find a whitespace character
\b Find a match at the beginning of a word like this: \bWORD, or at the end of a word like this: WORD\b
\uxxxx Find the Unicode character specified by the hexadecimal number xxxx

Квантификаторы определяют количества:

Quantifier Description Try it
n+ Matches any string that contains at least one n
n* Matches any string that contains zero or more occurrences of n
n? Matches any string that contains zero or one occurrences of n

Использование объекта регулярного выражения

В JavaScript объект RegExp — это объект регулярного выражения с предопределенными свойствами и методами.


Использование теста()

Метод test()представляет собой метод выражения RegExp.

Он ищет в строке шаблон и возвращает true или false в зависимости от результата.

В следующем примере выполняется поиск в строке символа «e»:

Пример

const pattern = /e/;
pattern.test("The best things in life are free!");

Поскольку в строке есть буква «e», вывод приведенного выше кода будет таким:

true

Вам не нужно сначала помещать регулярное выражение в переменную. Две строки выше можно сократить до одной:

/e/.test("The best things in life are free!");

Использование exec()

Метод exec()представляет собой метод выражения RegExp.

Он ищет в строке указанный шаблон и возвращает найденный текст в виде объекта.

Если совпадений не найдено, возвращается пустой (нулевой) объект.

В следующем примере выполняется поиск в строке символа «e»:

Пример

/e/.exec("The best things in life are free!");

Полный справочник регулярных выражений

Полную справку см. в нашем Полном справочнике по регулярным выражениям JavaScript .

Справочник содержит описания и примеры всех свойств и методов RegExp.