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 回答