Javascript正则表达式不包含带反斜杠的关键字

Javascript正则表达式不包含带反斜杠的关键字,javascript,regex,Javascript,Regex,我遇到了一个javascript正则表达式的问题,它必须注释掉脚本标记中的所有标记。但它不能注释掉id为“ignorescript”的特殊第一个脚本标记 下面是正则表达式的示例字符串: <script id="ignorescript"> var test = '<script>test<\/script>; var xxxx = 'x'; </script> var检验='检验; 变量xxxx='x'; ignorescip

我遇到了一个javascript正则表达式的问题,它必须注释掉脚本标记中的所有标记。但它不能注释掉id为“ignorescript”的特殊第一个脚本标记

下面是正则表达式的示例字符串:

<script id="ignorescript">
    var test = '<script>test<\/script>;
    var xxxx = 'x';
</script>

var检验='检验;
变量xxxx='x';
ignorescipt内的脚本标记有额外的反斜杠,因为它是JSON编码的(来自PHP)

这是我必须得到的最终结果:

<script id="ignorescript">
    var test = '<!ignore-- <script>test<\/script> ignore-->;
    var xxxx = 'x';
</script>

var test='测试忽略-->;
变量xxxx='x';
以下示例工作:

content = content.replace(/(<script>.*<\\\/script>)/g,
    "<!--ignore $1 ignore-->");
content=content.replace(/(.*)/g,
"");
但我需要检查它是否不包含关键字“ignorescript”。如果出现那个关键字,那么我不想替换任何东西。否则,将忽略注释添加到整个脚本标记到目前为止,我已经做到了这一点:

content = content.replace(/(<script.((?!ignorescript).)*<\/script>)/g,
    "<!--ignore $1 ignore-->");

content=content.replace(/(使其最终工作

以下是工作正则表达式:

/(<script(?!\sid="ignorescript").*?<\\\/script>)/g

/(我对您的要求感到困惑。您的示例字符串难道不应该被替换吗,因为最外层的脚本标记具有'ignorescript`作为id?为什么一个脚本标记具有额外的反斜杠而另一个没有?最后,您的最后一个正则表达式。一个脚本具有额外的反斜杠,因为它是从PHP编码的JSON。最外层的脚本标记不应该被替换。)注释掉了,但里面的脚本标记应该是。好的,你们能不能放一个例子字符串,你们的正则表达式不能工作?也许你们并没有明确提到另一个条件。
/(<script(?!\sid="ignorescript").*?<\\\/script>)/g