2014-11-05 3 views
0

Я пытаюсь использовать replace() для анализа переменных шаблона с динамическим контентом. Однако замена не работает, когда я использую $ .each() для итерации по массиву замен. Ничего не заменит. Вот мой код:Почему мой метод замены не работает?

  var defaults = { 
       sample_div : '#sample-ref', 
       remove_button : '#removereference', 
       update_div : '#references', 
       add_button : '#addReference', 
       hidden_input : 'input[name="references"]' 
      }; 


        var options = $.extend(defaults, options); 
        var new_ref = $('[name="reference"]').val(); 
        var existing = $(options.hidden_input).val(); 
        if(new_ref.length > 0){ 
         existing = existing.split(','); 
         existing.push(new_ref); 
         var sample = $(options.sample_div).html(); 
         var replacements = { 
          ref_int : existing.length, 
          ref_url : new_ref 
         } 
         $.each(replacements, function(index, value){ 
          sample = sample.replace(/{index}/g, value);      
         }); 
         $(options.update_div).append(sample); 
        } 

Подробнее ... jsFiddle. Проблема возникает в строке 25.

+0

Возможный дубликат [Как передать переменную в JavaScript с регулярным выражением?] (Http://stackoverflow.com/questions/494035/how-do-you-pass-a-variable-to--regular -expression-javascript) –

ответ

0

После небольшого поиска в Интернете я нашел это StackOverflow question. Я придумал следующее, которое работает.

sample = sample.replace(new RegExp("{"+index+"}", 'g'), value);

+0

xD вы были быстрее меня. отлично, что вы нашли решение самостоятельно. :) – Friederike

Смежные вопросы