Показать сообщение отдельно
  #1 (permalink)  
Старый 22.11.2011, 20:53
Аспирант
Отправить личное сообщение для ksevelyar Посмотреть профиль Найти все сообщения от ksevelyar
 
Регистрация: 21.03.2009
Сообщений: 53

Replace и функция
Хочу сохранить все блочные элементы в массив, заменить из заглушками, обработать текст и вставить блоки обратно.

Но счётчик не увеличивается. Почему? Я читал что обращение к функции идёт при каждом совпадении.

Я хочу вывод: dummy0 and dummy1

Получаю: dummy0 and dummy0

str ="<pre>apple</pre> and <pre>orange</pre>";

 blocks = /\<(h[1-6]|pre|div|ul|)\>([\s\S]*?)\<\/\1\>/gi;   

 i=0;
 var tmp_blocks = new Array();    
    
 str = str.replace(blocks, storeblocks);
 
 function storeblocks(x) {
          tmp_blocks[i] = x; 
          return "dummy"+i;
          i=i++;  
}

alert(str);
Ответить с цитированием