Javascript 避免匹配/替换字符串的自定义转义部分

Javascript 避免匹配/替换字符串的自定义转义部分,javascript,regex,Javascript,Regex,我用正则表达式替换字符串,如下所示: var str = "{% {{name}} %}: {{name}}"; console.log(str.replace(/{{([^{}]*)}}/g, "John")) // {% John %}: John 我想使用{%和%}来转义中间的任何内容-这意味着它应该跳过替换。因此,预期的输出是:/{{name}}:John 实现这一目标的最佳方法是什么?像这样 var str=“{%{{{name}}%}:{{{{name}}”; 风险值数据={

我用正则表达式替换字符串,如下所示:

var str = "{% {{name}} %}: {{name}}";
console.log(str.replace(/{{([^{}]*)}}/g, "John")) // {% John %}: John 
我想使用{%和%}来转义中间的任何内容-这意味着它应该跳过替换。因此,预期的输出是:
/{{name}}:John

实现这一目标的最佳方法是什么?

像这样

var str=“{%{{{name}}%}:{{{{name}}”;
风险值数据={
名字:“约翰”
}
str=str.replace(/{%(.+?)%}}{{(.+?)}}}/g,函数({,$1,$2){
返回$1 | |数据[$2]
});

document.write(str)
是否也要删除此
{%
?是的,它只是字符串的一部分,用于指示我要转义介于两者之间的内容。最后,我希望将其删除。