Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

Исключения

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
  • ...
  • 525
  • 526
  • 527
  • 528
  • 529
  • 530
  • 531
  • 532
  • 533
  • 534
  • 535
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: