具有特殊字符的String.replace,注意工作

时间:2018-04-20 21:36:10

标签: javascript regex

我花了几个小时试图弄清楚这里发生了什么,看看堆栈溢出和其他地方,我无法弄清楚发生了什么。我真的很感激任何帮助!!

我需要让document.write('< /div>');转到 - &gt; < /div>

我已将其简化为最简单的情况,并使用下面的html示例。

&#13;
&#13;
<script>
var str = "document.write('</div>');";
str = str.replace("/document.write/g","");
console.log(str); //</div>
</script>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:4)

排除引号并且有效。由于引号,它被解释为字符串文字,而正则表达式文字在普通/之间表示。

此外,.需要转义或与任何其他单个字符匹配。

<script>
var str = "document.write('</div>');";
str = str.replace(/document\.write/g,"");
console.log(str); //</div>
</script>

答案 1 :(得分:3)

String.prototype.replace()接受字符串或正则表达式。如果你要使用字符串,那么应该是:

&#13;
&#13;
var str = "document.write('</div>');";
str = str.replace("document.write","");
console.log(str);
&#13;
&#13;
&#13;