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

Свойства

message Сообщение об ошибке, предоставляющее дополнительную информацию об исключении. Это свойство содержит строку, переданную конструктору, или строку по умолчанию, определенную в реализации. Дополнительные сведения см. в справочной статье Error.message.

name Строка, определяющая тип исключения. Все объекты ReferenceError наследуют для этого свойства строку «ReferenceError».

Описание

Экземпляр класса

<b>ReferenceError</b>
создается при попытке прочитать значение несуществующей переменной. Дополнительные сведения о генерации и перехвате исключений см. в справочной статье Error.

См. также

Error, Error.message, Error.name

RegExp

RegExp

регулярные выражения для поиска по шаблону (Object-» RegExp)

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

<b>/маска/атрибуты</b>

Конструктор

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

Аргументы

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

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

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

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

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

Исключения

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

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

опущен.

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

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

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

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

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

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

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

Методы

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

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

Описание

Объект

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

См. также

Глава 10

RegExp.exec()

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

Синтаксис

<b>regexp.exec (строка)</b>

Аргументы

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

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

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

Исключения

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

Описание

Метод

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

Метод

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

Когда метод

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