私は最近、.js ファイルから JavaScript コードを読み取り、それを HTML コードのスクリプト タグ内に埋め込む必要があるプロジェクトに取り組みました。これは些細な作業だと思っていましたが、.js ファイル内では問題を引き起こさない一部のシーケンスが、HTML ファイルのスクリプト タグ内に埋め込まれた場合に望ましくない機能が発生する可能性があることを知るまでは。
たとえば、有効な JavaScript コードを含む .js ファイルに次のようなシーケンスが含まれているとします。
/*
...comments...
Add the following to your HTML:
<script language="javascript" src="samplejs.js"></script>
...comments...
*/
...これらのシーケンスが HTML ファイルの script タグ内に埋め込まれていると、インタープリターが行にヒットしたときに問題が発生します。
"<script language="javascript" src="samplejs.js"></script>"
(少なくとも、これは Firefox の場合です。)
正規表現以来...
"\<script.*\>.*\</script\>"
...文字列リテラルの一部として表示される場合でも、スクリプト タグをキャッチします。すなわち:
document.write('<div><script>doSomething()</script></div>')
...問題の解決策は、より堅牢な正規表現です(次のようなものです
"/\*.*\<.*\>.*\</.*\>.*\*/"
...)、または別のアプローチですか?
(すべてのコメントを取り除くことはオプションではないと仮定します)