Как было упомянуто в начале этой главы, регулярные выражения представлены
в виде объектов RegExp. Помимо конструктора RegExp(), объекты RegExp поддер_ живают три метода и несколько свойств. Особенность класса RegExp состоит
в том, что он определяет как свойства класса (или статические свойства), так и свойства экземпляра. То есть он определяет глобальные свойства, принадле_ жащие конструктору RegExp(), а также свойства, принадлежащие конкретным объектам RegExp. Методы поиска и свойства класса RegExp описаны в следующих двух подразделах.
Конструктор RegExp() принимает один или два строковых аргумента и создает новый объект RegExp. Первый аргумент конструктора – это строка, содержащая тело регулярного выражения, т. е. текст, который должен находиться между ко_ сыми чертами в литерале регулярного выражения. Обратите внимание: в стро_ ковых литералах и регулярных выражениях для обозначения управляющих по_ следовательностей используется символ \, поэтому передавая конструктору Re_ gExp() регулярное выражение в виде строкового литерала, необходимо заменить все символы \ символами \\. Второй аргумент RegExp() может отсутствовать. Ес_ ли он указан, то задает флаги регулярного выражения. Это должен быть один из символов g, i, m либо комбинация этих символов. Например:
// Находит все пятизначные числа в строке. Обратите внимание на использование
// в этом примере символов \\
var zipcode = new RegExp("\\d{5}", "g");
Конструктор RegExp() удобно использовать, когда регулярное выражение созда_ ется динамически и поэтому не может быть представлено с помощью синтаксиса литералов регулярных выражений. Например, чтобы найти строку, введенную пользователем, надо создать регулярное выражение во время выполнения с по_ мощью RegExp().