我有以下字符串:
[{par1},{par2},...,{parN}]
我正在使用以下正则表达式来捕获它:
(\{\S*\})
这样可以正常工作,并在组中捕获我的参数:$ 1 = par1,$ 2 = par2 ......等等
我的问题是,我想在所有这些群组的javascript中进行一些操作。 我知道怎么做1组。
str.replace(new RegExp((\{\S*\}),g),'whatever'+$1) //Probably need to add more escape characters
我的问题是如何将$ 1替换为' $ 1,$ 2,以及'无论' + $ 2 ...等等
即
[{par1},{par2}] ==> [mypar1,mypar2]
修改
用参数解释我想要做的更详细:
从[{par1},{par2}]我需要提取par1和par2,所以我可以用它们调用一个函数,它将返回不同的值:
function translate(par) {
//return different things for every parameter
}
//so finally will be like:
str.replace(new RegExp((\{\S*\}),g),translate($1))
答案 0 :(得分:1)
使用回调函数作为String.replace
函数的第二个参数:
var str = '[{par1}, {par2}, ..., {parN}]',
prefix = 'whatever',
replaced = str.replace(/\{(\S+)\}/g, function (p0, p1) {
// ... some other logic
return prefix + p1;
});
console.log(replaced); // "[whateverpar1, whateverpar2, ..., whateverparN]"