Есть такой
пример в учебнике:
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() может формировать массив со всеми результатами? или в справочнике все же ошибка?