2

HTMLコメントは、JSコードをサポートしない古いブラウザの特別なブロックとしてインラインJavaScriptを使用する場合があります。これらのブロックは次のようになります。

<!--
some js code
//-->

'true'htmlコメントをJSコードのコメントと区別したい。私はこの正規表現を書きました:

/<!--[^//]*?-->/g

したがって、内部に二重スラッシュがある一致を除外したいのですが、正規表現は、全体の二重スラッシュではなく、と//の文字セットと見なします。私に何ができる?////

4

1 に答える 1

5

お気づきのように、文字クラスは1つの文字にしか一致しないため、ここでは使用できません。しかし、ネガティブな先読みアサーションを利用することができます:

/<!--(?:(?!//)[\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 -->
于 2012-07-06T07:01:31.493 に答える