2

現在、バックボーンのあるプロジェクトでhaml_coffee_assetsを使用しています。すべてのブラウザは非常にうまく機能しているようです........ IE8 を除きます。

私が受け取るエラー:Expected ']' in regular expression

それが参照する行は次のとおりです。

 HAML.findAndPreserve = function(text) {
      var tags;
      tags = 'textarea,pre'.split(',').join('|');
      // **THE LINE BELOW** 
      return text = text.replace(RegExp("<(" + tags + ")>([^]*?)<\\/\\1>", "g"), function(str, tag, content) {
        return "<" + tag + ">" + (window.HAML.preserve(content)) + "</" + tag + ">";
      });
    };

ページ全体がロード時にコンパイルされないようにしています。データ バインドされた div は完全に空ですが、他のすべての静的要素は正常に読み込まれています。

4

1 に答える 1

2

問題の RegExp は、特定のタグの改行を HTML エンティティ形式に変換することで保持するためのものです。

<pre>Bar
Baz</pre>

になる

<pre>Bar&#x000A;Baz</pre>

JavaScript ではドットを改行に一致させることはできないため、空のネゴシエートされた文字クラスを使用してすべてに一致させることができます。ブラウザーを使用しているため、簡単に上書きHAML.findAndPreserveして別のアプローチをテストできます。IE8用に変更しても問題ありませんが、VMをテストするためだけにインストールすることは拒否します:-)

に代わるもの[^]であり、 Haml Coffee[\s\S]の対応するコードを変更することで Node.js で正常にテストされ、すべての仕様が正常に合格しています。IE8 で試してみて、それが有効で動作するかどうかを報告していただけますか? ありがとうございました!

于 2013-10-01T20:34:42.767 に答える