替换包含$&;的字符串;在JavaScript正则表达式中
我需要用动态值替换html字符串。此动态值(html编码)用于替换html字符串中的模式替换包含$&;的字符串;在JavaScript正则表达式中,javascript,regex,Javascript,Regex,我需要用动态值替换html字符串。此动态值(html编码)用于替换html字符串中的模式 var htmlstring = "<div>{NAME}</div>"; var name = "$<Anonymous>" //Encoded form of "$<Anonymous>"; html = htmlstring.replace(/{NAME}/g,name); var htmlstring=“{NAME}”; var n
var htmlstring = "<div>{NAME}</div>";
var name = "$<Anonymous>" //Encoded form of "$<Anonymous>";
html = htmlstring.replace(/{NAME}/g,name);
var htmlstring=“{NAME}”;
var name=“$Anonymous”//Encoded格式的“$”;
html=htmlstring.replace(/{NAME}/g,NAME);
我需要将“$”作为输出,但将“{NAME}lt;Anonymous>”作为输出。这是因为“$&”匹配整个匹配项“{NAME}”,并将“$&”替换为“{NAME}”
有人能建议我如何在JavaScript中实现这一点吗?在JavaScript中,要替换为
$
,您需要用另一个美元符号转义美元符号,否则,$&
将被视为对整个匹配值的反向引用(即这里的{NAME}
)
你需要使用
var name = "$$<Anonymous>"
^^
var htmlstring=“{NAME}”;
var name=“$$Anonymous”//code形式的“$”;
html=htmlstring.replace(/{NAME}/g,NAME);
document.write(html)代码>从的文档,$&
插入匹配的子字符串
您可以使用replace回调来获取替换字符串中的$&
文本
var htmlstring=“{NAME}”;
var name=“$Anonymous”//Encoded格式的“$”;
var html=htmlstring.replace(/{NAME}/g,函数(m){
返回名称;
});
log(html);
document.write(html)代码>