我有这个字符串:
<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'), ' ');
什么也没发生。我不明白为什么。
答案 0 :(得分:1)
[
通常会打开一类字符,所以你需要把它变成一个简单的字符:
https://jsfiddle.net/hwtu29eg/
s.replace(new RegExp('<Tracking event="firstQuartile"><!\\[CDATA\\[]]></Tracking>', 'g'), ' ');
您需要\\
的原因是您需要在字符串中使用单个\
(作为字符串中的最终结果),并且如果您使用\[
仅引用{ {1}}并成为[
。由于代码中的'['
将成为'\\'
的字符串,因此要将其设为'\'
,因此代码中需要'\['
。
答案 1 :(得分:0)
使用正则表达式文字转义/
和[]
元符号:
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, ' '));
输出:
"<Tracking event="firstQuartile"><![CDATA[blah blah bla]]></Tracking>"