Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换包含$&;的字符串;在JavaScript正则表达式中_Javascript_Regex - Fatal编程技术网

替换包含$&;的字符串;在JavaScript正则表达式中

替换包含$&;的字符串;在JavaScript正则表达式中,javascript,regex,Javascript,Regex,我需要用动态值替换html字符串。此动态值(html编码)用于替换html字符串中的模式 var htmlstring = "<div>{NAME}</div>"; var name = "$&lt;Anonymous&gt;" //Encoded form of "$<Anonymous>"; html = htmlstring.replace(/{NAME}/g,name); var htmlstring=“{NAME}”; var n

我需要用动态值替换html字符串。此动态值(html编码)用于替换html字符串中的模式

var htmlstring = "<div>{NAME}</div>";
var name = "$&lt;Anonymous&gt;"  //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 = "$$&lt;Anonymous&gt;"
            ^^
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)