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

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

Жанры

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

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

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

Кодекс Охотника. Книга XXII

Винокуров Юрий
22. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXII

Пламенев. Книга 3-7

Карелин Сергей Витальевич
Пламенев
Фантастика:
аниме
уся
фэнтези
сянься
5.00
рейтинг книги
Пламенев. Книга 3-7

Вернувшийся: Новая жизнь. Том I

Vector
1. Вернувшийся
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Вернувшийся: Новая жизнь. Том I

Контртеррор

Валериев Игорь
6. Ермак
Фантастика:
альтернативная история
5.00
рейтинг книги
Контртеррор

На границе империй. Том 10. Часть 6

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 6

Отверженный III: Вызов

Опсокополос Алексис
3. Отверженный
Фантастика:
фэнтези
альтернативная история
7.73
рейтинг книги
Отверженный III: Вызов

Эпоха Опустошителя. Том IX

Павлов Вел
9. Вечное Ристалище
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Эпоха Опустошителя. Том IX

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

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

Язычник

Мазин Александр Владимирович
5. Варяг
Приключения:
исторические приключения
8.91
рейтинг книги
Язычник

Страж Кодекса. Книга V

Романов Илья Николаевич
5. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса. Книга V

Последний Паладин. Том 14

Саваровский Роман
14. Путь Паладина
Фантастика:
аниме
фэнтези
попаданцы
5.75
рейтинг книги
Последний Паладин. Том 14

Перешагнуть пропасть

Муравьёв Константин Николаевич
1. Перешагнуть пропасть
Фантастика:
боевая фантастика
космическая фантастика
8.38
рейтинг книги
Перешагнуть пропасть

Третий. Том 6

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
фантастика: прочее
попаданцы
5.00
рейтинг книги
Третий. Том 6

Ефрейтор. Назад в СССР. Книга 2

Гаусс Максим
2. Второй шанс
Фантастика:
попаданцы
альтернативная история
7.00
рейтинг книги
Ефрейтор. Назад в СССР. Книга 2