javascript - IE8 RegExp.exec() 中的类型强制错误?

标签 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 上,第二次调用失败并显示“对象不支持该属性或方法”。

这是已知错误还是什么?

最佳答案

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

我建议减少应用中包含的外部 JS,直到找到罪魁祸首。

关于javascript - IE8 RegExp.exec() 中的类型强制错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5471671/

相关文章:

javascript - 如何让 onmouseover 和 onmouseout 设置按需要工作?

javascript - Axios ReactJS - 无法读取未定义的属性 'setState'

javascript - 如何使这个正则表达式 safari/iOS 兼容?

php - Swift 中的 preg_match 等价物

css - IE 的单选按钮 CSS 问题

css - IE8 没有让绝对定位的元素脱离流程

javascript - 如何检测 IE8 并显示页面或警报

javascript - 从跨域文件中禁用 Javascript

javascript - 如何检查 JavaScript 中的变量是否为空?

python - 我想从带有字符串的列表中提取数字