我一直在寻找一百万种形式并尝试过所有形式。我需要用值
替换文本的所有实例this.text = {
title:'This is my Title',
};
this.replaceTags = function() {
//Replace Text
$.each(this.text, function( index, value ){
var item = "{{$text:"+index+"}}";
var bodyText = $('body').html();
var regex = new RegExp(item, 'g');
var newText = bodyText.replace(regex,value);
$('body').html(newText);
})
}
我也试过
this.text = {
title:'This is my Title',
};
this.replaceTags = function() {
//Replace Text
$.each(this.text, function( index, value ){
var item = "{{$text:"+index+"}}";
var bodyText = $('body').html();
var newText = bodyText.replace(/item/g,value);
$('body').html(newText);
})
}
但两者都没有奏效。我的语法有错吗?
答案 0 :(得分:2)
由于$
是正则表达式中的特殊字符(它与行的末尾匹配),因此必须使用\
将其转义。由于\
是字符串中的特殊字符(它是转义字符),因此您必须自行转义。因此,您的代码变为:
var item = "{{\\$text:"+index+"}}";
var bodyText = $('body').html();
var regex = new RegExp(item, 'g');
var newText = bodyText.replace(regex,value);
$('body').html(newText);
bodyText.replace(/item/g,value)
实际上会查找字符序列item
,因此无论如何都无法正常工作。