我正在尝试用一些特殊字符替换“test”这个词。
<p id="demo">Visit test</p>
var res = str.replace("test", "@$&*");
document.getElementById("demo").innerHTML = res;
但它显示输出为“Visit @ test *”。任何人都会引导我输出“Visit @ $&amp; *”?
答案 0 :(得分:2)
替换模式中的$&
序列表示反向引用到整个匹配值。这就是为什么您的@t$&*
替换变为@
+匹配值等于test
+ *
。
要替换为美元符号,您可以在没有任何回调的情况下执行此操作,只需将替换模式中的$
符号(美元 - 转义符号)加倍:
var str = "Visit test";
var res = str.replace("test", "@$$&*");
console.log(res);
请参阅MDN "Specifying a string as a parameter":
$$
插入"$"
。
答案 1 :(得分:1)
Check the live example只需更改str.replace("test", () => "@$&*");
var str = document.getElementById("demo").innerHTML;
var res = str.replace("test", () => "@$&*");
document.getElementById("demo").innerHTML = res;
答案 2 :(得分:0)
var str = document.getElementById("demo").innerHTML;
var res = str.replace("test", '@$');
res = res.concat('&*');
document.getElementById("demo").innerHTML = res;