Регулярные выражения. Разница, если String и RegExp методы
Есть такой пример в учебнике:
var reg = /[-()\.^]/g; Первый случай. С методом match(): var str = "f.(g)-^1".match(reg); alert(str); // .,(,),-,^ Выводит результат полностью. Формирует массив для всех совпадений. Второй случай. С методом exec(). Чтобы увидеть все совпадения, нужно перечислять по очереди: var a = re.exec("f(g)-.^1"); var b = re.exec("f(g)-.^1"); var c = re.exec("f(g)-.^1"); alert(a); // ( alert(b); // ) alert(c); // - и т.д. И в массив заносит только ОДИН результат - текущей проверки. Но в справочнике указано, что exec() "формирует массив результатОВ или null". Не могу понять, где ошибка. Я проверил и у меня exec() НЕ формирует массив результатов. Формирует массив, но с ОДНИМ элементом. А не всеми, как match(). Вопрос, я неправильно вызываю? exec() может формировать массив со всеми результатами? или в справочнике все же ошибка? |
Цитата:
alert(/H(el)/.exec("Hello").join("\n")); // Первый элемент - вся найденная подстрока. Второй элемент - скобка. |
Часовой пояс GMT +3, время: 22:05. |