【发布时间】:2016-09-02 10:07:07
【问题描述】:
我有以下字符串:
[{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 替换为 'whatever+'$1,$2 替换为 'whatever'+$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))
【问题讨论】:
-
到底是不是只想去掉所有的大括号?
.replace(/[{}]+/g, '')? -
不不,我想删除大括号,获取参数本身,然后使用该参数进行操作。所以它不会总是替换相同的东西,它将取决于参数
-
如果你需要在更多代码中检查这些值,你需要使用匿名方法作为
replace的第二个参数。
标签: javascript regex replace