Haml Coffee ie8错误

时间:2013-10-01 17:49:01

标签: javascript regex internet-explorer-8 coffeescript hamlc

我目前正在使用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完全为空,但所有其他静态元素都正常加载。

1 个答案:

答案 0 :(得分:2)

有问题的RegExp是通过将某些标记转换为HTML实体格式来保留某些标记中的换行符,所以

<pre>Bar
Baz</pre>

变为

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

由于您无法在JavaScript中使点匹配换行符,因此可以使用空协商字符类来匹配所有内容。由于我们在浏览器中,您可以轻松覆盖HAML.findAndPreserve以测试替代方法。我没有问题为IE8更改它,但我拒绝安装VM只是为了测试它: - )

[^]的替代方法是[\s\S],我已经通过更改Haml Coffee中的相应代码并在所有规格正常传递的情况下在Node.js中成功测试了它。你能否在IE8中试试并报告是否有效且有效?谢谢!