RegExp | NN 4 IE J3 ECMA n/a | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Объект RegExp - статический объект, который и генерирует экземпляры регулярного выражения, и контролирует всё регулярное выражение в текущем окне или фрейме. Экземпляры объекта RegExp обозреваются в описании объекта regular expressions, которое следует далее. Регулярные выражения помогают в расположении текста, который соответствует образцам символов или характеристик. Например, регулярное выражение может использоваться, чтобы очень быстро выяснить, если ли в текстовом поле число с пятью цифрами. Определение соответствующего образца требует знания определённого синтаксиса, который лежит вне области этой книги (но охвачен в Mastering Regular Expressions, Jeffrey E.F. Friedl, изданной O'Reilly). Общий синтаксис может быть найден в описании объекта regular expression Свойства объекта RegExp cохраняют информацию о последней операции любого регулярного выражения в документе. Поэтому, думается, что каждое из этих свойств изменяется после каждой операции с регулярными выражениями. Такие операции включают не только методы экземпляра объекта regular expression (exec() и test()), но также и методы объекта String, которые могут принимать регулярные выражения как параметры (match(), replace(), и split()). Некоторых из этих свойств обращаются также к объекту regular expression, подготавливаясь к следующей операции с регулярным выражением Все свойства имеют и многословные названия, и также как shortcut-имена, которые начинаются с $. Создание: Формат литерального текста или функция конструктора RegExp. Литеральный формат используется так: /pattern/flags Функция конструктора используется так: new RegExp("pattern"[, "flags"]) Параметры: pattern - Текст регулярного выражения. flags - Флаг, если специфицирован, может иметь следующие значения в любом сочетании:
Заметьте, что параметры литерального формата не используют кавычек для обозначения строк, а параметры функции конструктора - используют кавычки. Итак, следующие выражения создают одно и то же регулярное выражение: /ab+c/i В таблице представлен полный список и описание специальных символов, которые могут использоваться в регулярных выражениях (см. также regular expression)
Литеральная нотация предоставляет компиляцию регулярного выражения при вычислении выражения. Используйте литеральную нотацию, если регулярное выражение должно остаться константой. Например, если Вы используете литеральную нотацию для построения регулярного выражения, используемого в цикле, регулярное выражение не должно перекомпилироваться при каждой итерации. Конструктор объекта регулярного выражения, например, new RegExp("ab+c"), предоставляет компиляцию регулярного выражения на этапе прогона/runtime. Используйте функцию, если знаете, что патэрн регулярного выражения будет изменяться, или если Вы не знаете патэрн и получаете его из другого источника, такого как ввод от пользователя. Отдельный предопределённый объект RegExp доступен для каждого окна; то есть каждый отдельный поток выполнения JavaScript получает свой собственный объект RegExp. Поскольку каждый скрипт запускается в потоке без остановки до конца выполнения, это гарантирует, что разные скрипты не перепишут значения объекта RegExp. Обратите внимание, что некоторые свойства объекта RegExp имеют и длинные, и короткие (Perl-подобные) имена. Оба имени всегда ссылаются на одно и то же значение. Perl это язык программирования, из которого JavaScript смоделировал свои регулярные выражения. |
Свойства:
constructor | JavaScript 1.1, NES 2.0, ECMA-262 |
Чтение/Изменение | |
Специфицирует функцию, которая создаёт прототип объекта. Заметьте, что значением этого свойства является ссылка на саму функцию, а не строка, содержащая имя функции. Все объекты наследуют свойство constructor из своих prototype |
|
Пример:
o = new Object // или o = {} в JavaScript 1.2 |
|
Возвращаемое значение: Целое число. |
input | NN 4 IE J3 ECMA n/a |
Чтение/Изменение | |
Основная строка, с которой сравнено регулярное выражение. Если основная строка передана операции регулярного выражения как параметр для метода, это значение - нуль. Короткая версия $_ (долларовый знак, символ подчеркивания). | |
Пример:
RegExp.input = "Four score and seven years ago..." | |
Возвращаемое значение: Строка. |
lastMatch | NN 4 IE J3 ECMA n/a |
Только чтение | |
Значением свойства lastMatch является последняя найденная подстрока исходной строки. Это свойство объекта RegExp является статическим и изменяется при каждой операции сопоставления с регулярным выражением. Короткая версия $& | |
Пример:
var matched = RegExp.lastMatch | |
Возвращаемое значение: Строка. |
lastParen | NN 4 IE J3 ECMA n/a |
Только чтение | |
Значением свойства lastParen является последняя запомненная подстрока исходной строки, соответствующая подвыражению регулярного выражения, заключенному в круглые скобки. Это свойство объекта RegExp является статическим и изменяется при каждой операции сопоставления с регулярным выражением. Короткая версия $+. | |
Пример:
var myValue = RegExp.lastParen | |
Возвращаемое значение: Строка. |
leftContext, rightContext | NN 4 IE J3 ECMA n/a |
Только чтение | |
Значением свойства leftContext является подстрока исходной строки, предшествующая последней найденной подстроке. Это свойство объекта RegExp является статическим и изменяется при каждой операции сопоставления с регулярным выражением. Значением свойства rightContext является подстрока исходной строки, следующая за последней найденной подстрокой. Это свойство объекта RegExp является статическим и изменяется при каждой операции сопоставления с регулярным выражением. Короткие версии - $' и $' соответственно. Отправная точка значения leftContext может изменяться с каждой операцией. | |
Пример:
var wholeContext = RegExp.leftContext + RegExp.lastMatch + RegExp.rightContext | |
Возвращаемое значение: Строка. |
multiline | NN 4 IE J3 ECMA n/a |
Чтение/Изменение | |
Если поиск простирается на несколько строк текста, свойство multiline равно true. Поиск текста, например, в элементе TEXTAREA является multiline. Короткая версия - $*. | |
Пример:
var x = new RegExp("a+b+c", "g"); |
|
Возвращаемое значение: Булево значение |
$1, ..., $9 | NN 4 IE J3 ECMA n/a |
RegExp.$n | Только чтение |
Введенные подкомпоненты регулярного выражения возвращают результаты. Эти результаты сохраняются индивидуально в свойствах, маркированных от 1 до 9, которым предшествует символ shortcut $. Порядок основан на позиции левой круглой скобки подкомпонента: крайний левый подсоставляющий результат помещен в $1. . Регулярное выражение может содержать любое количество выражений в круглых скобках, но в объекте RegExp запоминаются только последние девять найденных соответствий. Пример: следующий сценарий var re = new RegExp("(\\d*)\\s*(\\d*)","ig"); выведет на экран обозревателя текст $1 = '111' $2 = '2222' $3 = ''. Эти свойства объекта RegExp являются статическими и изменяются при каждой операции сопоставления с регулярным выражением. В методе String.replace они употребляются без имени объекта RegExp. Эти свойства могут использоваться непосредственно как параметры для методов String, которые используют регулярные выражения (см. метод String.replace()). | |
Пример:
RegExp.$2 | |
Возвращаемое значение: Строка. |
$01, ..., $99 | NN n/a IE 5.5 ECMA n/a |
RegExp.$nn | Только чтение |
Если часть регулярного выражения заключена в круглые скобки, то соответствующая ей подстрока запоминается для последующего использования. Значениями свойств $01, …, $99 являются подстроки исходной строки, которые были запомнены в процессе последнего сопоставления с образцом. Регулярное выражение может содержать любое количество выражений в круглых скобках, но в этих свойствах запоминаются только последние 99 найденных соответствий. Пример: следующий сценарий var re = new RegExp("(\\d*)\\s*(\\d*)","ig"); выведет на экран обозревателя текст $01 = '111' $02 = '2222' $03 = ''. Эти свойства объекта RegExp являются статическими и изменяются при каждой операции сопоставления с регулярным выражением. В методе String.replace они употребляются без имени объекта RegExp. |
|
Пример:
RegExp.$27 |
|
Возвращаемое значение: Строка. |
Методы:
toSource() | JavaScript 1.3 |
toSource() | |
Возвращает строку исходного кода объекта |
|
Возвращаемое значение Метод toSource возвращает следующие значения:
|
|
Параметры Нет |
toString() | JavaScript 1.3 |
toString() | |
Возвращает строку, представляющую специфицированный объект. |
|
Возвращаемое значение Строка |
|
Параметры Нет |
HIVE: All information for read only. Please respect copyright! |