Регулярные выражения используются с методами test и exec объекта RegExp и с методами match, replace, search и split объекта String.Эти методы рассматриваются в книге .
Метод объекта RegExp, выполняющий поиск совпадения в строке. Возвращает массив информации.
test
Метод объекта RegExp, тестирующий на совпадение в строке. Возвращает true или false.
match
Метод объекта String, выполняющий поиск совпадения в строке. Возвращает массив информации или null при отсутствии совпадений.
search
Метод объекта String, тестирующий на совпадение в строке. Возвращает индекс совпадения или -1, если поиск завершился ничем.
replace
Метод объекта String, выполняющий поиск совпадения в строке и замещающий совпавшую подстроку замещающей подстрокой.
split
Метод объекта String, использующий регулярное выражение или фиксированную строку для разбивки строки на массив подстрок.
Если Вам нужно знать, найден ли патэрн в строке, используйте методы test или search; для получения большей информации (но при замедлении выполнения) используйте методы exec или match. Если Вы используете методы exec или match и если совпадение найдено, эти методы возвращают массив и обновляют свойства объекта регулярного выражения, а также предопределённого объекта регулярного выражения, RegExp. Если совпадение не найдено, метод exec возвращает null (которое конвертируется в false).
В следующем примере скрипт использует метод exec для поиска совпадения в строке:
<SCRIPT LANGUAGE="JavaScript1.2">
myRe=/d(b+)d/g;
myArray = myRe.exec("cdbbdbsbz");
</SCRIPT>
Если Вам не нужен доступ к свойствам регулярного выражения, альтернативным способом создания myArray будет такой скрипт:
<SCRIPT LANGUAGE="JavaScript1.2">
myArray = /d(b+)d/g.exec("cdbbdbsbz");
</SCRIPT>
Если Вы хотите сконструировать регулярное выражение из строки, вот ещё один скрипт:
<SCRIPT LANGUAGE="JavaScript1.2">
myRe= new RegExp ("d(b+)d", "g");
myArray = myRe.exec("cdbbdbsbz");
</SCRIPT>
С помощью этих скриптов находится совпадение и возвращается массив и обновляются свойства, показанные в следующей таблице.
Таблица 4.3   Результаты Выполнения Регулярного Выражения.
Объект
Свойство или Индекс
Описание
В этом примере:
myArray
Совпавшая строка и все запомненные подстроки.
["dbbd", "bb"]
index
Индекс совпадений во вводе с базой 0.
1
input
Строка-оригинал.
"cdbbdbsbz"
[0]
Последние совпавшие символы.
"dbbd"
myRe
lastIndex
Индекс, начиная с которого стартует следующее совпадение. (Это свойство установлено только тогда, когда регулярное выражение использует опцию g, описанную в разделе .)
5
source
Текст патэрна. Обновляется в момент создания регулярного выражения, не исполняется.
"d(b+)d"
Как показано во второй форме этого примера, Вы можете использовать регулярное выражение, созданное с помощью инициализатора объекта, без присвоения его переменной. Если Вы всё же это сделаете, каждое вхождение будет новым регулярным выражением. Исходя из этого, если Вы используете форму без присвоения выражения переменной, Вы не сможете затем получить доступ к свойствам этого регулярного выражения. Например, у Вас есть скрипт:
<SCRIPT LANGUAGE="JavaScript1.2">
myRe=/d(b+)d/g;
myArray = myRe.exec("cdbbdbsbz");
document.writeln("The value of lastIndex is " + myRe.lastIndex);
</SCRIPT>
Вывод этого скрипта:
The value of lastIndex is 5
Если Ваш скрипт, однако, будет таким:
<SCRIPT LANGUAGE="JavaScript1.2">
myArray = /d(b+)d/g.exec("cdbbdbsbz");
document.writeln("The value of lastIndex is " + /d(b+)d/g.lastIndex);
</SCRIPT>
он выдаст:
The value of lastIndex is 0
Вхождения /d(b+)d/g в этих двух операторах являются разными объектами регулярного выражения и, соответственно, имеют разные значения свойства lastIndex. Если Вам нужен доступ к свойствам регулярного выражения, созданного с помощью инициализатора объекта, Вы должны сначала присвоить это выражение переменной.