HTML注释可以使用内联JavaScript作为不支持JS代码的旧浏览器的特殊块。这些块看起来像这样:
<!--
some js code
//-->
我想在JS代码中区分'true'html注释。我写过这个正则表达式:
/<!--[^//]*?-->/g
所以我想在内部用双斜杠排除匹配,但正则表达式将//
视为/
和/
的字符集,而不是整个双斜杠{{1} }。我该怎么办?
答案 0 :(得分:5)
如您所述,字符类只匹配单个字符,因此您无法在此处使用它们。但是你可以使用negative lookahead assertions:
/<!--(?:(?!//)[\s\S])*-->/g
(假设这是JavaScript)。
<强>解释强>
<!-- # Match <!--
(?: # Try to match...
(?!//) # (asserting that there is no // ahead)
[\s\S] # any character (including newlines)
)* # ...any number of times.
--> # Match -->