Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

Синтаксис литерала

/маска/атрибуты

Конструктор

new RegExp(шаблон, атрибуты)

Аргументы

шаблон Строка, задающая шаблон регулярного выражения или другое регулярное выражение.

атрибуты Необязательная строка, содержащая любые из атрибутов «g», «і» и «т», задающих глобальный, нечувствительный к регистру и многострочный поиск, соответственно. До выхода стандарта ECMAScript атрибут «m» не был доступен. Если аргумент шаблон - это регулярное выражение, а не строка, аргумент атрибуты может отсутствовать.

Возвращаемое значение

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

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

Исключения

SyntaxError
Генерируется, если шаблон не является допустимым регулярным выражением или если аргумент атрибуты содержит символы, отличные от «g», «і» и «т».

ТуреЕrror
Генерируется, если шаблон - это объект
RegExp
и аргумент атрибуты не

опущен.

Свойства экземпляра

global Признак присутствия в RegExp атрибута «g».

ignoreCase Признак присутствия в RegExp атрибута «і».

lastlndex Позиция символа при последнем обнаружении соответствия;

используется для поиска в строке нескольких соответствий.

multiline Признак присутствия в RegExp атрибута «m».

source Исходный текст регулярного выражения.

Методы

ехес Выполняет мощный универсальный поиск по шаблону,

test Проверяет, содержит ли строка данный шаблон.

Описание

Объект

RegExp
представляет регулярное выражение - мощное средство для поиска в строках по шаблону. Синтаксис и применение регулярных выражений полностью описаны в главе 10.

См. также

Глава 10

RegExp.exec

универсальный поиск по шаблону

Синтаксис

regexp.exec (строка)

Аргументы

строка Строка, в которой выполняется поиск.

Возвращаемое значение

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

Исключения

ТуреЕrror
Генерируется, если метод вызывается для объекта, не являющегося объектом
RegExp
.

Описание

Метод

ехес
– наиболее мощный из всех методов объектов
RegExp
и
String
для поиска по шаблону. Это универсальный метод, использовать который несколько сложнее, чем методы
RegExp.test,
String.search, String.replace
и
String.match.

Метод

exec
ищет в строке текст, соответствующий выражению
regexp
. И если находит, то возвращает массив результатов; в противном случае возвращается значение null. Элемент 0 полученного массива представляет собою искомый текст. Элемент 1 - это текст, соответствующий первому подвыражению в скобках внутри
regexp
, если оно есть. Элемент 2 соответствует второму подвыражению и т. д. Свойство
length
массива, как обычно, определяет количество элементов в массиве. В дополнение к элементам массива и свойству
length
значение, возвращаемое
ехес,
имеет еще два свойства. Свойство
index
указывает позицию первого символа искомого текста. Свойство
input
ссылается на строку. Этот возвращаемый массив совпадает с массивом, возвращаемым методом
String.match,
когда он вызывается для неглобального объекта
RegExp
.

Когда метод

ехес
вызывается для неглобального шаблона, он выполняет поиск и возвращает описанный выше результат. Однако если
regexp
– глобальное регулярное выражение,
ехес
ведет себя несколько сложнее. Он начинает поиск в строке с символьной позиции, заданной свойством
regexp.lastlndex
. Найдя соответствие, метод устанавливает свойство
lastIndex
равным позиции первого символа после найденного соответствия. Это значит, что
ехес
можно вызвать несколько раз, чтобы выполнить цикл по всем соответствиям в строке. Если метод
ехес
больше не находит соответствий, он возвращает значение null и сбрасывает свойство
lastlndex
в ноль. Начиная поиск непосредственно после успешного нахождения соответствия в другой строке, необходимо соблюдать внимательность и вручную установить свойство
lastlndex
равным нулю. Обратите внимание:
ехес
всегда включает полную информацию для найденного соответствия в возвращаемый им массив независимо от того, является
regexp
глобальным шаблоном или нет. Этим
ехес
отличается от метода
String.match
, который возвращает намного меньше информации при работе с глобальными шаблонами. Вызов
ехес
в цикле - единственный способ получить полную информацию о результатах поиска для глобального шаблона.

Пример

Для нахождения всех соответствий в строке метод

ехес
можно вызывать в цикле:

var pattern = /\bJava\w*\b/g;

var text = "JavaScript is more fun than Java or JavaBeans!";

var result;

while((result = pattern.exec(text)) != null) {

alert("Matched ‘" + result[0] +

at position " + result.index +

next search begins at position " + pattern.lastlndex);

}

См. также

RegExp.lastlndex, RegExp.test, String.match, String.replace, String.search; глава 10

RegExp.global

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

<
Поделиться:
Популярные книги

Солдат Империи

Земляной Андрей Борисович
1. Страж
Фантастика:
попаданцы
альтернативная история
6.67
рейтинг книги
Солдат Империи

Газлайтер. Том 19

Володин Григорий Григорьевич
19. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Газлайтер. Том 19

Бандит

Щепетнов Евгений Владимирович
1. Петр Синельников
Фантастика:
фэнтези
7.92
рейтинг книги
Бандит

Хозяин Теней 7

Петров Максим Николаевич
7. Безбожник
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Хозяин Теней 7

Чужое наследие

Кораблев Родион
3. Другая сторона
Фантастика:
боевая фантастика
8.47
рейтинг книги
Чужое наследие

Первый среди равных. Книга II

Бор Жорж
2. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных. Книга II

Княжья Русь

Мазин Александр Владимирович
6. Варяг
Приключения:
исторические приключения
9.04
рейтинг книги
Княжья Русь

Мельницы богов

Шелдон Сидни
Детективы:
прочие детективы
9.22
рейтинг книги
Мельницы богов

Тринадцатый V

NikL
5. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый V

Эфемер

Прокофьев Роман Юрьевич
7. Стеллар
Фантастика:
боевая фантастика
рпг
7.23
рейтинг книги
Эфемер

Я еще князь. Книга XX

Дрейк Сириус
20. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я еще князь. Книга XX

Низший - Инфериор. Компиляция. Книги 1-19

Михайлов Дем Алексеевич
Фантастика 2023. Компиляция
Фантастика:
боевая фантастика
5.00
рейтинг книги
Низший - Инфериор. Компиляция. Книги 1-19

Князь Целитель 4

Ткачев Андрей Юрьевич
4. Князь Целитель
Фантастика:
боевая фантастика
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Князь Целитель 4

Шатун. Лесной гамбит

Трофимов Ерофей
2. Шатун
Фантастика:
боевая фантастика
7.43
рейтинг книги
Шатун. Лесной гамбит