1

JavaScript:Good Parts p41には、次の正規表現が含まれています。

/&([^&;]+);/g

これは、などのすべてのHTMLエンティティを検索するために使用されます>。このコードをJSLintで検証すると、レポートされます

安全でない'^'

これは厳密に言えば正しいですが、それでも無視しても問題ないと思います。か否か?

4

2 に答える 2

3

正規表現が予想以上に一致する可能性があるという警告であり、それについて警告するのは正しいことです。「<code>&abc def ghi;」のようなものに一致します。それらが違法なエンティティ名であるにもかかわらず。一方、この場合はおそらく深刻な問題ではありません (厳密にはマッチング後の処理に依存しますが)。JSLintで簡単に無効にすることができます。

より良い RE は次のようになります。

/&(#[0-9]+|#[xX][a-fA-F0-9]+|[a-zA-Z0-9]+);/

残念ながら、エンティティ名で許可されている他の文字を思い出せません。

于 2013-02-08T09:47:42.930 に答える
2

実際の質問に対する回答を提供する。安全でない理由がわかっている場合は、無視してください。JSLint の不平が気になる場合は、修正してください。;)

十分に安全だと思います。

于 2013-02-08T09:45:42.210 に答える