gpt4 book ai didi

javascript - 全部替换为特殊字符在 Javascript 中不起作用

转载 作者:行者123 更新时间:2023-11-28 12:19:21 24 4
gpt4 key购买 nike

我有一个字符串

var str = "{CPARTY_<BPARTY+_DPARTY}";

我需要在主字符串(str)中查找以下字符串(find)的所有出现。

 var find = "{CPARTY_<BPARTY+_DPARTY}";

并将其替换为以下字符串。

var replace = "<span><div  ng-click='myClick($event)' title='null' data-token='CPARTY_<BPARTY+_DPARTY'  style='display: inline;'>{CPARTY_&lt;BPARTY+_DPARTY}</div></span>";

这行不通。这意味着没有进行更换。没有抛出异常。

str = str.replace(new RegExp(find, 'g'), replace);

这有效。

str = str.replace(find, replace);

我想使用替换所有语法。我意识到它与特殊字符 < 和 $lt; 有关。如果我没有 < 和 $lt; ,没有问题。我知道这是非常愚蠢的事情,但无法弄清楚。

jsFiddle https://jsfiddle.net/848c1as4/9/

最佳答案

有几个字符在正则表达式中具有特殊含义。例如,+(。在 RegExp 中使用它们之前,您必须通过转义它们来处理它们。

var str = "{CPARTY_&lt;BPARTY+_DPARTY}";
var find = "{CPARTY_&lt;BPARTY+_DPARTY}";
var safeFind = find.replace(/([\/\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g,"\\$&");
var replace = "<span><div ng-click='myClick($event)' title='null' data-token='CPARTY_<BPARTY+_DPARTY' style='display: inline;'>{CPARTY_&lt;BPARTY+_DPARTY}</div></span>";
str = str.replace(new RegExp(safeFind, 'g'), replace);

( source )

关于javascript - 全部替换为特殊字符在 Javascript 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41903888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com