替换正则表达式

时间:2017-04-19 17:22:07

标签: javascript jquery regex replace

我正在尝试用一些特殊字符替换“test”这个词。

   <p id="demo">Visit test</p> 

   var res = str.replace("test", "@$&*");
   document.getElementById("demo").innerHTML = res;

但它显示输出为“Visit @ test *”。任何人都会引导我输出“Visit @ $&amp; *”?

3 个答案:

答案 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;