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

时间:2014-11-28 14:35:14

标签: javascript regex

我用RegEx替换字符串如下:

var str = "{% {{name}} %}: {{name}}";
console.log(str.replace(/{{([^{}]*)}}/g, "John")) // {% John %}: John 

我想使用{%和%}来解除介于两者之间的任何问题 - 这意味着它应该跳过 replace 。所以预期的输出是:// {{name}}: John

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

1 个答案:

答案 0 :(得分:0)

喜欢这个吗?



var str = "{% {{name}} %}: {{name}}";

var data = {
  name: 'John'
}

str = str.replace(/{%(.+?)%}|{{(.+?)}}/g, function(_, $1, $2) {
  return $1 || data[$2]
});

document.write(str)