При поиске по тексту можно использовать шаблон, описывающий подстроку. В JavaScript такой шаблон может быть описан с помощью объекта RegExp. В простейшем случае такой шаблон описывает отдельный символ, однако имеет смысл его использовать для регулярных выражений.
Следующий ниже код описывает RegExp объект с именем pttn, содержащий регулярное выражение, описывающее целое десятичное число:
var pattn = new RegExp("/[0-9]+/");
Объект RegExp имеет 3 встроенных метода: test(), exec() и compile().
- Метод test() выполняет поиск по шаблону:
· var pattn = new RegExp("[0-9]+");
· document.write(pattn.test("38 попугаев"));
Результат:
true
- Метод exec() выполняет поиск подстроки по шаблону и возвращает найденные соответствия; если соответствий нет, возвращается значение null:
· var pattn=new RegExp("[0-9]+");
· document.write(pattn.exec("38 попугаев"));
Результат:
Если необходимо найти все соответствия, то при вызове конструктора RegExp следует указать дополнительный параметр "g", указывающий на необходимость глобального поиска:
var pattn = new RegExp("[0-9]+", "g");
do
{
result = pattn.exec("1 попугай, 2 попугая,…, 38 попугаев");
document.write(" " + result);
}
while (result!= null)
Пример 7.2. (html, txt)
Результат:
1 2 38 null
- Метод compile() применяется для изменения ранее созданного шаблона:
· var pattn = new RegExp("[0-5]+");
· document.write(pattn.exec("38 попугаев"));
· pattn.compile("[6-9]+");
· document.write(";" + pattn.exec("38 попугаев"));
Пример 7.3. (html, txt)
Результат:
3;8