在IE8 RegExp.exec()中键入强制错误?

时间:2011-03-29 11:19:38

标签: javascript regex internet-explorer-8

我不知道这是否是IE8中的已知问题,但我无法找到任何相关信息。

// The regex can vary but has to have a non-matching group defined:
var re = /^(\s)?[\d]+$/i;
// We call it with a string...
re.exec("2");
// We call it with a number...
re.exec(2);

Firefox和Chrome(目前无法在Opera中试用)对于这两种调用都没有问题。但是在IE8上,第二次调用失败,“对象不支持该属性或方法”。

这是一个已知的错误还是什么?

2 个答案:

答案 0 :(得分:1)

由于exec采用字符串,我会确保你传递一个字符串。通过传递一个数字,我会说你试图依靠浏览器实现javascript的方式的灰色区域。

答案 1 :(得分:1)

我在Ext JS 4应用程序中看到了同样的问题。很多东西都失败了,因为Ext JS似乎有时会在exec()方法中传递数字。问题原来是第三方库SyntaxHighlighter。删除它还原了默认的IE8行为和re.exec(2);工作

我建议您删除应用程序中包含的外部JS,直到找到罪魁祸首为止。