Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.08.2010, 21:14
Новичок на форуме
Отправить личное сообщение для retator Посмотреть профиль Найти все сообщения от retator
 
Регистрация: 11.08.2010
Сообщений: 1

RegExp - Глобальный поиск c запоминанием р-тов
Приветствую, народ, в край запутался, разъясните пожалуйста по следующему вопросу

Нужно:
из исходной строки выбрать по паттерну все совпадения и запомнить их.
Что делаем:

ВАРИАНТ 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, // присутствует запятая

Другими словами, каким образом я могу получить массив значений совпадений с паттерном последовательностей находящихся в скобках в случае глобального поиска?

Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 11.08.2010, 22:53
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

http://javascript.ru/RegExp/exec
читайте
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
RegExp - поиск str1 перед которой нету str2 larafyll Общие вопросы Javascript 3 29.04.2010 18:20