Применяем регулярное выражение в Javascript

В данной статье рассмотрены основы применения регулярного выражения в Javascript.

Введение

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

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

В Javascript регулярные выражения также являются объектами. Это шаблоны, использующиеся для сопоставления последовательностей символов в строках. Они используются в способах exec() и test() объекта RegExp, а также в способах match(), replace(), search и split() объекта String.

Пример

var pattern = /example/i

/example/i – это регулярное выражение. example – это шаблон(который будет использоваться в поиске). i – это модификатор, указывающий на чувствительность к регистру.

Подготовка регулярного выражения

JS регулярные выражения состоят из шаблона и модификатора. Синтаксис будет примерно следующим:

/pattern/modifiers;

Шаблон задает правило поиска. Он состоит из простых символов наподобие /abc/ либо комбинации простых и специальных символов: /abc/ или /Chapter(d+).d/.

Таблица шаблонов

Применяем регулярное выражение в Javascript Модификаторы могут сделать запросы чувствительными к регистру, глобальными, и так далее. Они используются для проведения чувствительного к регистру поиска, а также глобального поиска.

Таблица модификаторов

Применяем регулярное выражение в Javascript Сейчас мы готовы к тому, чтобы применить JS регулярные выражения. Существует два основных метода сделать это: используя объект регулярного выражения или регулярное выражение для строки.

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

Создаем объект регулярного выражения

Этот объект описывает шаблон символов. Он используется для сопоставления шаблонов. Есть два метода сконструировать объект регулярного выражения.

Метод 1: используя литерал регулярного выражения, который состоит из шаблона, заключенного в слэши, к примеру:

var reg = /ab+c/;

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

Метод 2: вызывая функцию-конструктор объекта RegExp, например:

var reg = new RegExp("ab+c");

Использование конструктора может выполнить компиляцию регулярного выражения JS во время исполнения скрипта. Используйте данный метод, если регулярное выражение будет изменяться или не знаете шаблон заранее. Например, если вы приобретаете информацию от посетителя, который вводит поисковый запрос.

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

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

  • compile()(устарел в версии 1.5) – компилирует регулярное выражение;
  • exec() – производит сопоставление в строке. Возвращает первое совпадение;
  • test() – производит сопоставление в строке. Возвращает значение true или false;
  • toString() – возвращает строчное значение регулярного выражения.

Примеры

Применение test()

Способ test() – регулярное выражение объекта RegExp. Он производит поиск строки шаблона, и в зависимости от полученного результата возвращает значение true или false. Следующий JS регулярного выражения пример показывает, как происходит поиск в строке символа “e”:

var patt = /e/;patt.test("Лучшие в мире вещи – бесплатны!");

Поскольку здесь в строке имеется “e”, результатом данного кода будет значение true.

Регулярные выражения вовсе необязательно помещать в переменную. Такой же запрос можно провести в одну строку:

/e/.test("Лучшие в мире вещи – бесплатны!");

Применение exec()

Он производит поиск в строке по заданному правилу поиска, и возвращает найденный текст. Если совпадений найдено не было, то результатом будет null.

Посмотрим на способ в действии, на примере того же символа “e”:

/e/.exec("Лучшие в мире вещи – бесплатны!");

Поскольку в строке имеется “e”, результатом данного кода будет .e.

Применение регулярного выражения для строки

В Javascript данные выражения также можно без труда использовать с двумя способами объекта String: search() и replace(). Они нужны для выполнения поиска и замены в тексте.

  • Способ search() — использует выражение для поиска соответствия, и возвращает информацию о расположении соответствия;
  • Способ replace() — возвращает модифицированную строку с замененным шаблоном.

Примеры

Применение регулярного выражения JS для осуществления чувствительного к регистру поиска фразы “w3schools” в строке:

var str = "Visit W3Schools";var n = str.search(/w3schools/i);

Результатом в n будет 6.

Способ search также принимает строку в виде аргумента. Аргумент string будет преобразован в регулярное выражение:

Применение string для поиска фразы “W3schools” в строке:

var str = "Visit W3Schools!";var n = str.search("W3Schools");

Применение чувствительного к регистру регулярного выражения JS для замены «Microsoft» на «W3Schools» в строке:

var str = "Visit Microsoft!";var res = str.replace(/microsoft/i, "W3Schools");

В результате мы получим: « Visit W3Schools! «.

Способ replace() также принимает строку для поиска:

var str = “Visit Microsoft!”;var res = str.replace(“Microsoft”, “W3Schools”);

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *