継承されたコードで JSLint を実行したところ、次の結果が得られました。
Problem at line 24 character 36: Unexpected '\'.
content = content.replace(/\<a href=/g, '<a target="blank" href=');
私はしばらくの間グーグルをしてきましたが、これは、Javascript の置換でエスケープする必要がないことを示唆しています。
HTML += '<div class="articleBody">'
+ this.myData.record[0][0][5].replace(/<\/?a[^>]*>/gi,'') + '</div>';
しかし、私の標準的な regExp イントロは、他のいくつかのランダムなサイトと同様に、Javascript について具体的に話していることを示唆しています (ただし、独自の例では JSLink が正しいことを示唆しています)。
次のアサーション文字は、単語の最初と最後で一致します。それらは次のとおりです。
< と >
Mozilla のページ ( replace()とRegExp ) は < & > でアサーションを行うとは言っていませんが、Javascriptが RegExp/replace メソッドで意図的に < でアサーションを行わないと明示的に述べている場所を見つけることができませんでした。. つまり、 < をエスケープする Javascript の実装が間違っていると言っている場所はどこにもありません。 実際、エスケープされたまたはエスケープされていない< は正常に機能するようです。確かに、予約されていないエスケープされた文字は問題なく動作するようです。たとえば、\e === e ですが、\t !== t wrt replace() です。
余談ですが、すべての RegExp の実装が同じであるとは限らないことは認識しています。しかし、それはかなり一般的な知識です。私が見つけるのに苦労しているアサーション。
誰かが私のためにこれを寝かせてもらえますか?It Is Written
その < がJavascript RegExpのアサーションのマーカーとして意図的に無視され、それとは逆の動作が正しくないことを見つける場所はありますか?