Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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 - Fatal编程技术网

替换JavaScript中出现的所有不起作用的字符串

替换JavaScript中出现的所有不起作用的字符串,javascript,Javascript,我有这个字符串: <Tracking event="firstQuartile"><![CDATA[]]></Tracking> <Tracking event="firstQuartile"><![CDATA[]]></Tracking> <Tracking event="firstQuartile"><![CDATA[]]></Tracking> <Tracking event=

我有这个字符串:

<Tracking event="firstQuartile"><![CDATA[]]></Tracking>
<Tracking event="firstQuartile"><![CDATA[]]></Tracking>
<Tracking event="firstQuartile"><![CDATA[]]></Tracking>
<Tracking event="firstQuartile"><![CDATA[blah blah bla]]></Tracking>

我尝试:

.replace(new RegExp('<Tracking event="firstQuartile"><![CDATA[]]></Tracking>', 'g'), ' ');
.replace(新的RegExp(“'g'),”);

什么也没发生。我不明白为什么。

使用regex文本转义
/
[]
元符号:

var str = '<Tracking event="firstQuartile"><![CDATA[]]></Tracking><Tracking event="firstQuartile"><![CDATA[]]></Tracking><Tracking event="firstQuartile"><![CDATA[]]></Tracking><Tracking event="firstQuartile"><![CDATA[blah blah bla]]></Tracking>';

console.log(str.replace(/<Tracking event="firstQuartile"><!\[CDATA\[\]\]><\/Tracking>/g, ' '));
var-str='';
log(str.replace(//g',);
输出:

"<Tracking event="firstQuartile"><![CDATA[blah blah bla]]></Tracking>"
“”

[
通常会打开一类字符,因此您需要将其设置为普通字符:

s.replace(新的RegExp(“'g'),”);

需要
\
的原因是字符串中需要一个
\
(作为字符串的最终结果),如果使用
\[/code>,只引用
[
并成为
'['
。因为代码中的
'\\'
将成为
'\\'
的字符串,因此要使其成为
'\['
,代码中需要
'\\['

必须转义特殊字符,例如
[
]
如下:
\[
\\]
s.replace(new RegExp('<Tracking event="firstQuartile"><!\\[CDATA\\[]]></Tracking>', 'g'), ' ');