English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основы JavaScript

Объекты JavaScript

Функции JavaScript

JS HTML DOM

JS Браузер BOM

Основы AJAX

Руководство по JavaScript

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

Регулярные выражения обычно называются “regex” или “RegExp”, это шаблоны, используемые для соответствия комбинациям символов в строке.

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

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

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

В JavaScript, регулярные выражения также являются объектами.

Создание регулярного выражения

Вы можете создать регулярное выражение одним из следующих способов:

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

  var regex = /w3codebox/g

или вызватьконструироватьфункция, как показано ниже:

  var regex = new RegExp("w3codebox", "g");

Примеры:

  • w3codeboxявляется шаблоном (используется для поиска)

  • gявляется модификатором (выполняет глобальное соответствие)

falseконструироватьфункция может предоставить компиляцию регулярного выражения в время выполнения.

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

Примечание:этатекстГрамматика использует косую черту (/pattern/) для упаковки регулярного выражения, а грамматика конструктора использует кавычки ("pattern").

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

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

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

replace()Метод возвращает измененный строковый объект, в котором заменен шаблон.

match()методы ищут соответствия регулярному выражению в строке и возвращают их в виде объекта Array.

Метод search()

search()Метод выполняет поиск для нахождения соответствия регулярного выражения и строки.

Если найден соответствующий элемент, он вернет положение первого соответствующего элемента, если не найден соответствующий элемент, то вернет-1:

var str = 'The question is to be, or not to be, that is to be.';
var pos = str.search('to be');
Проверьте, ‹/›

Ниже приведен пример с использованиемiИспользование модификаторов в регулярных выражениях (не учитывая регистр):

var str = 'The question is TO BE, or not to be, that is to be.';
var pos = str.search(/to be/i);
Проверьте, ‹/›

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

Метод replace()

replace()Метод возвращает новый строковый объект, который содержит часть или все совпадения шаблона и заменен заменяющим элементом.

Первый параметр будет тем значением, которое нужно найти, а второй параметр будет тем значением, которое нужно заменить.

var str1 = 'The question is to be, or not to be, that is to be.';
var str2 = str1.replace('to be', 'ZZZ');
Проверьте, ‹/›

по умолчанию,replace()метод заменяет только первый соответствующий элемент.

Для замены всех出现的 содержимого используйтеgмодификаторы регулярного выражения (глобальный поиск):

var str1 = 'The question is to be, or not to be, that is to be.';
var str2 = str1.replace(/to be/g, 'ZZZ');
Проверьте, ‹/›

Для замены не различающего регистр кода используйтеiмодификаторы регулярного выражения (не различающие регистр):

var str1 = 'The question is TO BE, or not to be, that is to be.';
var str2 = str1.replace(/to be/gi, 'ZZZ');
Проверьте, ‹/›

метод match()

match()методы ищут соответствия регулярному выражению в строке и возвращают их в виде объекта Array.

var str = 'POLLUTION: Air Pollution is introduction of chemicals to the atmosphere';
var reg = str.match(/ion/g);
Проверьте, ‹/›

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

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

модификаторыописаниеПример
gвыполнение глобального соответствия, то есть поиск всех соответствий, а не остановка после первого соответствияПроверьте
iвыполнение не различающегося по регистру соответствияПроверьте
mвыполнение многострочного соответствияПроверьте

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

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

скобки []использование для поиска последовательности символов:

выражениеописаниеПример
[abc]поиск любого символа между квадратными скобкамиПроверьте
[0-9]поиск любого символа между квадратными скобками (любое количество)Проверьте
(x|y)поиск указанного любого заменителяПроверьте

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

метасимволыописаниеПример
\dнайти цифруПроверьте
\Wпоиск не литерального символаПроверьте
\sпоиск пробельного символаПроверьте

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

выражениеописаниеПример
z+соответствие любому содержащему по крайней мере одноzстрокиПроверьте
z*соответствие любому содержащему ноль или несколькоzстрокиПроверьте
z?соответствие любому содержащему ноль или одно出现zстрокиПроверьте

Использование методов RegExp

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

test()Метод ищет шаблон в строке и возвращает true или false в зависимости от результатов.

exec()Метод ищет шаблон в строке и возвращает true или false в зависимости от результатов.

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

test()Метод выполняет поиск соответствия в указанном строке.

Метод test()Если найден соответствующий элемент, он возвращаетtrue; в противном случае, возвращает.

falsetest()Используйте

var str = "ru.oldtoolbag.com";
var regex = new RegExp("h");
Если вы хотите узнать,找到了 ли в строке шаблон, который вы ищете.
Проверьте, ‹/›

var ans = regex.test(str);test()Возвращает булево значение, в отличие отexec()Он возвращает строку.

Метод exec()

exec()Метод выполняет поиск соответствия в указанном строке.

Если найден соответствующий элемент, этот метод возвращает соответствующий текст; в противном случае, возвращает null.

var str = "ru.oldtoolbag.com";
var regex = new RegExp("h");
var ans = regex.exec(str);
Проверьте, ‹/›

Проверка ввода с помощью регулярного выражения

Расчет количества гласных в строке:

Введите текст в поле ввода, чтобы показать количество гласных:

Количество гласных в вводимых символах:

Запуск кода

Полное руководство по RegExp

Для полного руководства по свойствам и методам обратитесь к нашемуРеференс JavaScript RegExp.

Часть справки содержит описание и примеры всех свойств и методов RegExp.