Simple Javascript replace with a loop

javascript, regex, replace, string

Solution

Fiddle here

Code:

var rx = /{([0-9]+)}/g;
str=str.replace(rx,function($0,$1){return params[$1];});

The replace method loops through the string (because of /g in the regex) and finds all instances of {n} where n is a number. $1 captures the number and the function replaces {n} with params[n].

Problem

I'm try to replace all occurances wihtin a string with the array index value as below. ``` var str = '<a href="{0}" title="{1}">{1}</a>'; var params= []; params.push('Url', 'TitleDisplay'); for (i in params) { var x = /'{' + i + '}'/g; str = str.replace(x, params[i]); } ``` No matter what I do, I cannot seem to get it to work. Dropping the '/g' works with one match, but not all. I know this is basic but for the lide of me I cannot get it to work.

Original source