我不知道这是否是 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 上,第二次调用失败并显示“对象不支持该属性或方法”。
这是已知错误还是什么?
最佳答案
我在 Ext JS 4 应用程序中看到了同样的问题。很多事情都失败了,因为 Ext JS 似乎有时会在 exec() 方法中传递数字。问题原来是第三方库 SyntaxHighlighter。删除它恢复了默认的 IE8 行为和 re.exec(2);成功了。
我建议减少应用中包含的外部 JS,直到找到罪魁祸首。
关于javascript - IE8 RegExp.exec() 中的类型强制错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5471671/