На главную страницу
Форум txt.version   




Статья :: RegExp
Оглавление | Назад | Вперёд | Индекс

RegExp

Объект - регулярное выражение, содержащий патэрн регулярного выражения. Он имеет свойства и методы для использования этого регулярного выражения при поиске и замене совпадений в строках.

Помимо свойств отдельного объекта регулярного выражения, который Вы создаёте через использование функции-конструктора RegExp, предопределённый объект RegExp имеет static-свойства, которые устанавливаются всякий раз при использовании любого регулярного выражения.

Объект ядра

Реализован в

JavaScript 1.2, NES 3.0

JavaScript 1.3: добавлен метод toSource.

Создание

Формат текста литерала функции-конструктора RegExp.

Формат литерала используется так:

/pattern/flags

Функция-конструктор используется так:

new RegExp("pattern"[, "flags"])

Параметры

pattern

Текст регулярного выражения.

flags

Если флаги специфицированы, они имеют следующие значения:

  • g: глобальное совпадение

  • i: игнорировать регистр

  • gi: глобальное совпадение и игнорирование регистра

Заметьте, что параметры формата литерала не используют знаки кавычек для обозначения строк, а параметры функции-конструктора - используют. Так, следующие выражения создают одно регулярное выражение:

/ab+c/i
new RegExp("ab+c", "i")

Описание

При использовании функции-конструктора необходимо использовать нормальные правила замены (escape) символов (вставка перед специальными символами обратного слэша \). Например, следующие записи эквивалентны:

re = new RegExp("\\w+")
re = /\w+/

В таблице дан полный список и описание специальных символов, которые могут использоваться в регулярных выражениях.

Таблица 1.3 Специальные символы в регулярных выражениях
Символ Значение
\

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

Например, /b/ совпадает с символом 'b'. Поместив backslash перед b,  /\b/, делаем символ специальным, в данном случае - обозначающим границу слова.

-или-

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

Например, * это спецсимвол, означающий 0 или более совпадений предыдущего символа; например, /a*/ означает 0 или более совпадений символа а. Для подстановки * литерально, предварите его обратным слэшем; например, /a\*/ совпадает с 'a*'.

^

Совпадение в начале ввода или строки.

Например, /^A/ не совпадает с 'A' в строке "an A," но совпадает в "An A."

$

Совпадение в конце ввода или строки.

Например, /t$/ не совпадает с 't' в "eater", но совпадает в "eat"

*

Совпадение предшествующего символа 0 или более раз.

Например, /bo*/ совпадает с 'boooo' в "A ghost booooed" и с 'b' в "A bird warbled", но совпадений нет в "A goat grunted".

+

Совпадение предшествующего символа 1 или более раз. Эквивалентно {1,}.

Например, /a+/ совпадает с 'a' в "candy" и со всеми a в "caaaaaaandy."

?

Совпадение предшествующего символа 1 или более раз.

Например, /e?le?/ совпадает с 'el' in "angel" and the 'le' in "angle."

.

(Десятичная точка) совпадает с любым символом, за исключением символа новой строки.

Например, /.n/ совпадает с 'an' и с 'on' в "nay, an apple is on the tree", но не с 'nay'.

(x)

Совпадает с 'x' и запоминает совпадение.

Например, /(foo)/ совпадает (и запоминается) с 'foo' в "foo bar." Совпавшая подстрока может быть вызвана из элементов результирующего массива [1], ..., [n] или из свойств $1, ..., $9 предопределённого объекта RegExp.

x|y

Совпадает с 'x' или с 'y'.

Например, /green|red/ совпадает с 'green' в "green apple" и с 'red' в "red apple".

{n}

Где n это положительное целое число. Совпадение предшествующего символа точно n раз.

Например, /a{2}/ не совпадает с 'a' в "candy," но совпадает с со всеми а в "caandy" и с первыми двумя а в "caaandy."

{n,}

Где n это положительное целое число. Совпадение как минимум n появлений предшествующего символа.

Например, /a{2,} не совпадает с 'a' в "candy", но совпадает со всеми а в "caandy" и в "caaaaaaandy".

{n,m}

Где n и m это положительные целые числа. Совпадают минимум n и максимум m вхождений предшествующего символа.

Например, /a{1,3}/ не совпадает ни с чем в "cndy", совпадает с 'a' в "candy", двумя а в "caandy" и первыми тремя a в "caaaaaaandy". Заметьте, что, при совпадении с "caaaaaaandy", совпадает "aaa", хотя строка-оригинал содержит больше а.

[xyz]

Набор символов. Совпадает с одним (любым) из символов набора. Можно специфицировать диапазон символов с помощью дефиса.

Например, [abcd] равносильно [a-c]. Они совпадают с 'b' в "brisket" и с 'c' в "ache".

[^xyz]

Отрицающий набор символов. То есть он совпадает со всем, кроме того, что содержится в скобках. Можно специфицировать диапазон символов с помощью дефиса.

Например, [^abc] равносильно [^a-c]. Совпадает с 'r' в "brisket" и с 'h' в "chop."

[\b]

Совпадает с backspace. (Не путайте с \b.)

\b

Соответствует границе слова, такой как space/пробел. (Не путайте с [\b].)

Например, /\bn\w/ совпадает с 'no' в "noonday";/\wy\b/ совпадает с 'ly' в "possibly yesterday."

\B

Совпадает с не-границей слова.

Например, /\w\Bn/ совпадает с 'on' в "noonday", и /y\B\w/ совпадает с 'ye' в "possibly yesterday."

\cX

Где X это управляющий символ. Совпадает с управляющим символом в строке.

Например, /\cM/ совпадает с control-M в строке.

\d

Совпадает с цифровым символом. Эквивалентно [0-9].

Например, /\d/ или /[0-9]/ совпадает с '2' в "B2 is the suite number."

\D

Совпадает с любым нецифровым символом. Эквивалентно [^0-9].

Например, /\D/ или /[^0-9]/ совпадает с matches 'B' в "B2 is the suite number."

\f

Совпадает с form-feed/прогоном страницы.

\n

Совпадает с linefeed/прогоном строки.

\r

Совпадает с carriage return/возвратом каретки.

\s

Совпадает с одиночным пробельным символом, включая space, tab, form feed, line feed. Эквивалентно [ \f\n\r\t\v].

Например, /\s\w*/ совпадает с ' bar' в "foo bar."

\S

Совпадает с одиночным символом, отличным от пробельного символа. Эквивалентно [^ \f\n\r\t\v].

Например, /\S/\w* совпадает с  'foo' в "foo bar."

\t

Совпадает с  tab/табуляцией.

\v

Совпадает с vertical tab/вертикальной табуляцией.

\w

Совпадает с любым алфавитным или цифровым символом, включая символ подчёркивания. Эквивалентно [A-Za-z0-9_].

Например, /\w/ совпадает с 'a' в "apple", с '5' в "$5.28" и с '3' в "3D."

\W 

Совпадает с любым несловарным символом. Эквивалентно [^A-Za-z0-9_].

Например, /\W/ или /[^$A-Za-z0-9_]/ совпадает с '%' в "50%."

\n

Где n это положительное целое. Обратная ссылка на последнюю подстроку, совпавшую с n символов в скобках в регулярном выражении (с учётом левой скобки).

Например, /apple(,)\sorange\1/ совпадает с 'apple, orange,' в "apple, orange, cherry, peach." Более полные примеры даны после этой таблицы.

Примечание: Если количество левых скобок меньше числа, специфицированного в \n, \n считается 8-ричной escape-заменой, как описано в следующем ряду данной таблицы.

\ooctal
\xhex

Где \ooctal это 8-ричное escape-значение или где \xhex  это 16-ричное escape-значение. Позволяет внедрять ASCII-коды в регулярные выражения.

Литеральная нотация предоставляет компиляцию регулярного выражения при вычислении выражения. Используйте литеральную нотацию, если регулярное выражение останется константным. Например, если Вы используете литеральную нотацию для построения регулярного выражения, используемого в цикле, регулярное выражение не будет перекомпилироваться при каждой итерации.

Конструктор объекта регулярного выражения, например, new RegExp("ab+c"), предоставляет компиляцию регулярного выражения на этапе прогона. Используйте функцию-конструктор, если Вы знаете, что патэрн регулярного выражения будет изменяться, или если патэрн Вам не известен и получается из другого источника, как при вводе пользователя. После того как Вы определили регулярное выражение, и если это регулярное выражение используется по всему скрипту и может изменяться, Вы можете использовать метод compile для компиляции нового регулярного выражения для обеспечения эффективного многократного использования.

Отдельный предопределённый объект RegExp имеется в каждом окне; то есть каждый отдельный поток выполнения JavaScript получает свой собственный объект RegExp. Поскольку каждый скрипт запускается на выполнение без прерывания потока, это гарантирует, что разные скрипты не перепишут значения объекта RegExp.

Предопределённый объект RegExp имеет static-свойства input, multiline, lastMatch, lastParen, leftContext, rightContext и с $1 по $9. Свойства input и multiline могут быть предустановлены. Значения других static-свойств устанавливаются после выполнения методов exec и test отдельного объекта регулярного выражения и после выполнения методов match и replace объекта String.

Свойства. Резюме.

Обратите внимание, что некоторые свойства объекта RegExp имеют длинные и сокращённые (Perl-подобные) имена. Оба имени всегда ссылаются на одно и то же значение. Perl это язык программирования, из которого JavaScript смоделировал регулярные выражения.

Свойство Описание
$1, ..., $9

Совпадения подстрок в скобках, если имеются.

$_

См. input.

$*

См. multiline.

$&

См. lastMatch.

$+

См. lastParen.

$`

См. leftContext.

$'

См. rightContext.

constructor

Специфицирует функцию, которая создаёт прототип объекта.

global

Тестировать или нет регулярное выражение относительно всех возможных совпадений в строке, или только относительно первого совпадения.

ignoreCase

Игнорировать ли регистр при поиске совпадения в строке.

input

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

lastIndex

Индекс, с которого начинается следующее совпадение.

lastMatch

Последние совпавшие символы.

lastParen

Последнее совпадение подстроки в скобках, если имеется.

leftContext

Подстрока, предшествующая самому последнему совпадению.

multiline

Искать ли на нескольких строках.

prototype

Позволяет добавлять свойства всем объектам.

rightContext

Строка, следующая за самым последним совпадением.

source

Текст патэрна.

Методы. Резюме

Метод Описание
compile

Компилирует объект регулярного выражения.

exec

Выполняет поиск совпадения в своём строковом параметре.

test

Тестирует на совпадение в своём строковом параметре.

toSource

Возвращает литерал объекта, представляющий специфицированный объект; Вы можете использовать это значение для создания нового объекта. Переопределяет метод Object.toSource.

toString

Возвращает строку, представляющую специфицированный объект. Переопределяет метод Object.toString.

valueOf

Возвращает примитивное значение специфицированного объекта. Переопределяет метод Object.valueOf.

Кроме того, этот объект наследует методы watch и unwatch из объекта Object.

Примеры

Пример 1. Следующий скрипт использует метод replace для переключения слов в строке. Для заменяющего текста скрипт использует значения свойств $1 и $2 глобального объекта RegExp. Обратите внимание, что имя объекта RegExp не предшествует свойствам $, когда они передаются как второй аргумент методу replace.

<SCRIPT LANGUAGE="JavaScript1.2">
re = /(\w+)\s(\w+)/;
str = "John Smith";
newstr=str.replace(re, "$2, $1");
document.write(newstr)
</SCRIPT>

Будет выведено "Smith, John".

Пример 2. Здесь RegExp.input устанавливается событием Change. В функции getInfo метод exec использует значение RegExp.input в качестве аргумента. Обратите внимание, что RegExp присоединён к свойствам $.

<HTML>
<SCRIPT LANGUAGE="JavaScript1.2">
function getInfo() {
   re = /(\w+)\s(\d+)/;
   re.exec();
   window.alert(RegExp.$1 + ", your age is " + RegExp.$2);
}
</SCRIPT>
Enter your first name and your age, and then press Enter.
<FORM>
<INPUT TYPE:"TEXT" NAME="NameAge" onChange="getInfo(this);">
</FORM>
</HTML>

$1, ..., $9


Свойства, которые содержат содержат совпадения подстрок в скобках, если имеются.

Свойство из

RegExp

Static, Только для чтения

Реализованы в

JavaScript 1.2, NES 3.0

Описание

Поскольку input является static-свойством, оно не является свойством отдельного объекта регулярного выражения. Поэтому Вы всегда используете его так: RegExp.input.

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

Эти свойства могут использоваться в замещающем тексте для метода String.replace. При таком использовании не вводите перед ними префикс RegExp. Пример далее иллюстрирует это. Если скобки не включены в регулярное выражение, скрипт интерпретирует $n  литерально (где n  это положительное целое число).

Пример

Этот скрипт использует метод replace для переключения слов в строке. Для заменяющего текста скрипт использует значения свойств $1 и $2 глобального объекта RegExp. Обратите внимание, что имя объекта RegExp не предшествует свойствам $, когда они передаются как второй аргумент методу replace.

<SCRIPT LANGUAGE="JavaScript1.2">
re = /(\w+)\s(\w+)/;
str = "John Smith";
newstr=str.replace(re, "$2, $1");
document.write(newstr)
</SCRIPT>

This displays "Smith, John".

$_


См. input.

$*


См. multiline.

$&


См. lastMatch.

$+


См. lastParen.

$`


См. leftContext.

$'


См. rightContext.

compile


Компилирует объект регулярного выражения в процессе выполнения скрипта.

Метод из

RegExp

Реализован в

JavaScript 1.2, NES 3.0

Синтаксис

regexp.compile(pattern[, flags])

Параметры

regexp

Имя регулярного выражения. Может быть именем переменной или литералом.

pattern

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

flags

Если флаги специфицированы, могут иметь одно из следующих значений:

  • "g": глобальный поиск совпадения

  • "i": игнорировать регистр символов

  • "gi": глобальный поиск и игнорирование регистра

Описание

Метод compile используется для компиляции регулярного выражения, созданного функцией-конструктором RegExp. Это форсирует компиляцию регулярного выражения только однократно, что означает, что регулярное выражение не компилируется всякий раз при его обнаружении. Используйте метод compile, когда Вам известно, что регулярное выражение будет константным (после получения его патэрна) и будет многократно использоваться в скрипте.

Вы можете также использовать метод compile для изменения регулярного выражения в процессе выполнения. Например, если регулярное выражение изменяется, вы можете использовать метод compile для рекомпиляции объекта для повышения эффективности последующего неоднократного использования.

Вызов этого метода изменяет значение свойств source, global и ignoreCase регулярного выражения.

constructor


Специфицирует функцию, которая создаёт прототип объекта. Обратите внимание, что значением этого свойства является ссылка на саму функцию, а не строка, содержащая имя функции.

Свойство из

RegExp

Реализовано в

JavaScript 1.1, NES 2.0

Версия ECMA

ECMA-262

Описание

См. Object.constructor.

exec


Выполняет поиск совпадения в специфицированной строке. Возвращает результирующий массив.

Метод из

RegExp

Реализован в

JavaScript 1.2, NES 3.0

Синтаксис

regexp.exec([str])
regexp([str])

Параметры

regexp

Имя регулярного выражения. Это может быть имя переменной или литерал.

str

Строка, относительно которой производится поиск совпадений регулярного выражения. Если отсутствует, используется значение RegExp.input.

Описание

Как видно из описания синтаксиса, метод exec регулярного выражения может быть вызван напрямую (regexp.exec(str)) или неявно (regexp(str)).

Если Вы ищете совпадение просто для того, чтобы определить true или false, используйте метод test или метод String search.

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

Рассмотрим пример:

<SCRIPT LANGUAGE="JavaScript1.2">
//Совпадает один символ d, с последующим одним или более b, с последующим одним d
//Запоминается совпадение b с последующим d
//Регистр игнорируется
myRe=/d(b+)(d)/ig;
myArray = myRe.exec("cdbBdbsbz");
</SCRIPT>

В таблице показан результат работы скрипта:

Объект Свойство/Индекс Описание Пример
myArray

Контекст массива myArray

["dbBd", "bB", "d"]

index

Индекс совпадений в строке с базой 0

1

input

Строка-оригинал

cdbBdbsbz

[0]

Последние совпавшие символы

dbBd

[1], ...[n]

Совпадения подстрок в скобках, если имеются. Количество подстрок в скобках не ограничивается.

[1] = bB
[2] = d

myRe
lastIndex

Индекс начала следующего совпадения.

5

ignoreCase

Указывает, используется ли флаг "i" для игнорирования регистра символов

true

global

Указывает, используется ли флаг "g" для глобального поиска совпадения

true

source

Текст патэрна

d(b+)(d)

RegExp
lastMatch
$&

Последние совпавшие символы

dbBd

leftContext
$\Q

Подстрока, предшествующая последнему совпадению

c

rightContext
$'

Подстрока, идущая после последнего совпадения

bsbz

$1, ...$9

Совпадения подстрок в скобках, если имеются. Количество возможных подстрок в скобках не ограничивается, но RegExp может содержать только последние девять.

$1 = bB 
$2 = d

lastParen  
$+

Последнее совпадение подстроки в скобках, если имеется.

d

Если в регулярно выражении используется флаг "g", Вы можете многократно использовать метод exec для поиска успешных совпадений в той же самой строке. При этом поиск стартует с подстроки str, специфицированной свойством lastIndex регулярного выражения. Например, такой скрипт:

<SCRIPT LANGUAGE="JavaScript1.2">
myRe=/ab*/g;
str = "abbcdefabh"
myArray = myRe.exec(str);
document.writeln("Found " + myArray[0] +
   ". Next match starts at " + myRe.lastIndex)
mySecondArray = myRe.exec(str);
document.writeln("Found " + mySecondArray[0] +
   ". Next match starts at " + myRe.lastIndex)
</SCRIPT>

Отобразит следующий текст:

Found abb. Next match starts at 3
Found ab. Next match starts at 9

Пример

В этом примере пользователь вводит имя, и скрипт выполняет совпадения относительно ввода. Затем циклически проходит по массиву, чтобы проверить, нет ли других имён, совпадающих с именем пользователя.

В скрипте предполагается, что первые зарегистрированные имена предварительно загружаются в массив A, возможно, с получением их из базы данных party.

<HTML>
<SCRIPT LANGUAGE="JavaScript1.2">
A = ["Frank", "Emily", "Jane", "Harry", "Nick", "Beth", "Rick",
      "Terrence", "Carol", "Ann", "Terry", "Frank", "Alice", "Rick",
      "Bill", "Tom", "Fiona", "Jane", "William", "Joan", "Beth"]
function lookup() {
   firstName = /\w+/i();
   if (!firstName)
      window.alert (RegExp.input + " isn't a name!");
   else {
      count = 0;
      for (i=0; i<A.length; i++)
         if (firstName[0].toLowerCase() == A[i].toLowerCase()) count++;
      if (count ==1)
         midstring = " other has ";
      else
         midstring = " others have ";
      window.alert ("Thanks, " + count + midstring + "the same name!")
   }
}
</SCRIPT>
Enter your first name and then press Enter.
<FORM> <INPUT TYPE:"TEXT" NAME="FirstName" onChange="lookup(this);"> </FORM>
</HTML>

global


Используется ли флаг "g" в регулярном выражении.

Свойство из

RegExp

Только для чтения

Реализовано в

JavaScript 1.2, NES 3.0

Описание

global это свойство отдельного объекта регулярного выражения.

Значение global будет true, если флаг "g" используется; иначе - false. Флаг "g" указывает, что регулярное выражение должно проверяться относительно всех возможных совпадений в строке.

Вы не можете изменять это свойство явно. Однако вызов метода compile изменяет значение этого свойства.

ignoreCase


Используется ли флаг "i" в регулярном выражении.

Свойство из

RegExp

Только для чтения

Реализовано в

JavaScript 1.2, NES 3.0

Описание

ignoreCase это свойство отдельного объекта регулярного выражения.

Значение ignoreCase будет true, если флаг "i" используется; иначе - false. Флаг "i" указывает, что регистр символов должен игнорироваться при поиске совпадений в строке.

Вы не можете изменять это свойство явно. Однако вызов метода compile изменяет значение этого свойства.

input


Строка, относительно которой выполняется поиск совпадений с регулярным выражением. $_ является другим именем этого свойства.

Свойство из

RegExp

Static

Реализовано в

JavaScript 1.2, NES 3.0

Описание

Поскольку input это static-свойство, оно не является свойством отдельного объекта регулярного выражения. Вы должны всегда использовать его так: RegExp.input.

Если методам exec или test регулярного выражения не предоставляются аргументы и если RegExp.input имеет значение, это значение используется как аргумент для этих методов.

Скрипт или браузер могут предварительно устанавливать свойство input. Если это сделано и если не предоставляется явно строковой аргумент, значение input используется как строковой аргумент для методов exec или test объекта регулярного выражения. input устанавливается браузером в следующих случаях:

  • Если обработчик вызывается для элемента TEXT, в input устанавливается значение текстового содержимого.
  • Если обработчик вызывается для элемента TEXTAREA, в input устанавливается значение текстового содержимого. Заметьте, что multiline также устанавливается в true, поэтому поиск совпадений может производиться по нескольким строкам текста.
  • Если обработчик вызывается для элемента SELECT, в input устанавливается значение выбранного текста.
  • Если обработчик вызывается для объекта Link, в input устанавливается значение текста метжду тэгами <A HREF=...> и </A>.

Значение свойства input очищается после завершения работы обработчика события.

lastIndex


Целочисленное свойство чтения/записи, которое специфицирует индекс, с которого стартует следующий поиск совпадения.

Свойство из

RegExp

Реализовано в

JavaScript 1.2, NES 3.0

Описание

lastIndex это свойство отдельного объекта регулярного выражения.

Это свойство устанавливается, только если регулярное выражение использовало флаг "g" для выполнения глобального поиска. Применяются следующие правила:

  • Если lastIndex превышает размер строки, regexp.test и regexp.exec терпят неудачу, а lastIndex устанавливается в 0.
  • Если lastIndex равен длине строки и если регулярное выражение совпадает с пустой строкой, то регулярное выражение совпадает с вводом, начиная с lastIndex.
  • Если lastIndex равен длине строки и если регулярное выражение не совпадает с пустой строкой, то регулярное выражение не совпадает с вводом, а lastIndex снова устанавливается в 0.
  • Иначе lastIndex устанавливается в следующую позицию после самого последнего совпадения.

Например, рассмотрим следующую последовательность операторов:

re = /(hi)?/g

Совпадает с пустой строкой.

re("hi")

Возвращает ["hi", "hi"] с lastIndex, равным 2.

re("hi")

Возвращает [""], пустой массив, чей нулевой элемент является совпавшей строкой. В данном случае это пустая строка, поскольку lastIndex был 2 (и всё ещё остаётся 2), а "hi" имеет размер 2.

lastMatch


Последние совпавшие символы. $& это другое имя этого же самого свойства.

Свойство из

RegExp

Static, Только для чтения

Реализовано в

JavaScript 1.2, NES 3.0

Описание

Поскольку lastMatch это static-свойство, оно не является свойством отдельного объекта регулярного выражения. Вы должны всегда использовать его так: RegExp.lastMatch.

lastParen


Последнее совпадение подстроки в скобках, если имеется. $+ это другое имя этого же самого свойства.

Свойство из

RegExp

Static, Только для чтения

Реализовано в

JavaScript 1.2, NES 3.0

Описание

Поскольку lastParen iэто static-свойство, оно не является свойством отдельного объекта регулярного выражения. Вы должны всегда использовать его так: RegExp.lastParen.

leftContext


Подстрока, предшествующая самому последнему совпадению. $` это другое имя этого же самого свойства.

Свойство из

RegExp

Static, Только для чтения

Реализовано в

JavaScript 1.2, NES 3.0

Описание

Поскольку leftContext это statiс-свойство, оно не является свойством отдельного объекта регулярного выражения. Вы должны всегда использовать его так: RegExp.leftContext.

multiline


Искать ли на нескольких строках. $* это другое имя этого же самого свойства.

Свойство из

RegExp

Static

Реализовано в

JavaScript 1.2, NES 3.0

Описание

Поскольку multiline это statiс-свойство, оно не является свойством отдельного объекта регулярного выражения. Вы должны всегда использовать его так: RegExp.multiline.

Значение multiline будет true, если выполняется поиск на нескольких строках текста, false - если поиск обязан остановиться на символе конца строки.

Скрипт или браузер могут предустанавливать свойство multiline. Если обработчик события вызывается из элемента TEXTAREA, браузер устанавливает multiline в true.
multiline очищается после завершения работы обработчика события. Это означает, что, если Вы предварительно установили multiline в true, оно восстанавливается в false после выполнения работы любого обработчика события.

prototype


Предоставляет прототип для данного класса. Вы можете использовать этот прототип для добавления свойств или методов во все экземпляры класса. О прототипах см. Function.prototype.

Свойство из

RegExp

Реализовано в

JavaScript 1.1, NES 2.0

Версия ECMA

ECMA-262

rightContext


Подстрока, идущая за самым последним совпадением. $' это другое имя этого же самого свойства.

Свойство из

RegExp

Static, Только для чтения

Реализовано в

JavaScript 1.2, NES 3.0

Описание

Поскольку rightContext это statiс-свойство, оно не является свойством отдельного объекта регулярного выражения. Вы должны всегда использовать его так: RegExp.rightContext.

source


Свойство "только для чтения", содержащее текст патэрна, исключая слэши (/) и флаги "g" и "i".

Свойство из

RegExp

Только для чтения

Реализовано в

JavaScript 1.2, NES 3.0

Описание

source это свойство отдельного объекта регулярного выражения.

Вы не можете изменять это свойство явно. Однако вызов метода compile изменяет значение этого свойства.

test


Выполняет поиск совпадения регулярного выражения и специфицированной строки. Возвращает true или false.

Метод из

RegExp

Реализован в

JavaScript 1.2, NES 3.0

Синтаксис

regexp.test([str])

Параметры

regexp

Имя регулярного выражения. Это может быть имя переменной или литерал.

str

Строка, относительно которой производится подстановка регулярного выражения. Если отсутствует, используется значение RegExp.input.

Описание

Если Вам нужно знать, найдено ли совпадение патэрна в строке, используйте метод test (аналогично методу String.search); для получения большей информации (но при более медленном выполнении) используйте метод exec (аналогично методу String.match).

Пример

Печатается сообщение, содержание которого зависит от успешности прохождения теста:

function testinput(re, str){
   if (re.test(str))
      midstring = " contains ";
   else
      midstring = " does not contain ";
   document.write (str + midstring + re.source);
}

toSource


Возвращает строку, представляющую исходный код объекта.

Метод из

RegExp

Реализован в

JavaScript 1.3

Синтаксис

toSource()

Параметры

Отсутствуют.

Описание

Метод toSource возвращает следующие значения:

  • Для встроенного объекта RegExp метод toSource возвращает следующую строку, означающую, что исходный код недоступен:
       function Boolean() {
          [native code]
       }
  • Для экземпляров объекта RegExp метод toSource возвращает строку, представляющую исходный код объекта.

Этот метод обычно вызывается в JavaScript внутренне, а не явно в коде.

См. также

Object.toSource

toString


Возвращает строку, представляющую специфицированный объект.

Метод из

RegExp

Реализован в

JavaScript 1.1, NES 2.0

Версия ECMA

ECMA-262

Синтаксис

toString()

Параметры

Отсутствуют.

Описание

Объект RegExp переопределяет метод toString объекта Object; он не наследует Object.toString. Для объектов RegExp метод toString возвращает строковое представление объекта.

Пример

Выводится строка, отображающая строковое значение объекта RegExp:

myExp = new RegExp("a+b+c");
alert(myExp.toString())  //    выведет "/a+b+c/"

См. также

Object.toString

valueOf


Возвращает примитивное значение RegExp-объекта.

Метод из

RegExp

Реализован в

JavaScript 1.1

Версия ECMA

ECMA-262

Синтаксис

valueOf()

Параметры

Отсутствуют.

Описание

Метод valueOf объекта RegExp возвращает примитивное значение RegExp-объекта как тип данных string. Это значение эквивалентно RegExp.toString.

Этот метод обычно вызывается в JavaScript внутренне, а не явно в коде.

Пример

myExp = new RegExp("a+b+c");
alert(myExp.valueOf())         выведет "/a+b+c/"

См. также

RegExp.toString, Object.valueOf
Оглавление | Назад | Вперёд | Индекс

Дата последнего обновления: 28 мая 1999 года.
Copyright (c) 1999 Netscape Communications Corporation

RegExp

страницы в данном разделе 
 ancor  applet
 area.htm  array
 Индекс  Boolean
 button  Checkbox
 Классы, Конструкторы и Методы Java  Значения Цветов
 Оглавление  Куки Netscape
 date.htm  document
 event  FileUpload
 form.htm  Frame
 Function  Обработчики Событий
 Hidden  History
 Image  Оглавление
 java.htm  JavaArray
 JavaClass  JavaObject
 JavaPackage  Приложение A. Зарезервированные Слова
 Layer  JSException
 JSObject  Plugin
 link.htm  Location
 math.htm  MimeType
 navigator  netscape
 Number  Object
 Объекты, Методы и Свойства  Операции
 Option  Packages
 Приложения  Справочник по Классам LiveConnect
 Элементы Языка  Объекты. Справочник.
 Password  Plugin
 Об Этой Книге  Radio
 RegExp  Reset
 screen  Select
 Операторы  String
 Style  Submit
 sun.htm  text.htm
 Textarea  toc.htm
 Свойства и Функции Верхнего Уровня  Новые Возможности в Этой Версии
 window   


Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)

Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)

PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C





 
©  programming-lang.com  справочник программиста