Приветствую, народ, в край запутался, разъясните пожалуйста по следующему вопросу
Нужно:
из исходной строки выбрать по паттерну все совпадения и запомнить их.
Что делаем:
ВАРИАНТ 1:
// исходная строка, в которой ищем требуемые последовательности
var testStr = '12, 23, 45, 54';
/* регулярка, котороя ищет последовательности цифр, после которой следует запятая, и запоминает только последовательность цифр */
var re = new RegExp("([0-9]+),", "gmi");
// собственно, поиск
var match = re.exec(testStr);
// и смотрим, что нашли
document.write(match);
Проблема заключается в том, что не смотря на использование флага
g и скобок, у нас в
match будет только первое совпадение с паттерном, то есть "12," и та последовать цифр, которую собственно хотели достать из запомненных значений - в скобках, "12".
Требуется же, получить все последовательности цифр (без запятой), которые должны запоминаться, поскольку в паттерне присутствуют скобки, то есть. нужно получить массив совпадений с цифрами, то есть
match[1] == 12
match[2] == 23
match[3] == 45
... собственно, как это сделать ?
ВАРИАНТ 2:
var testStr = '12, 23, 45, 54';
var re = new RegExp("([0-9]+),", "gmi");
var match = testStr.match(re);
document.write(match);
в этом же случае, в массив match уже сохраняются все совпадения с паттерном, однако, сохраняются не запоминаемые значения только последовательности цифр, но так же и запятая, присутствующая в паттерне ВНЕ скобок! То есть, результатом выполнения этого примера будет:
match[1] == 12, // присутствует запятая
match[2] == 23, // присутствует запятая
match[3] == 45, // присутствует запятая
Другими словами, каким образом я могу получить массив значений совпадений с паттерном последовательностей находящихся в скобках в случае глобального поиска?
Спасибо!