Javascript和Internet explorer 8错误

Javascript和Internet explorer 8错误,javascript,html,regex,internet-explorer-8,Javascript,Html,Regex,Internet Explorer 8,我有以下几行Javascript代码: function SetTabIndex() { var test = document.getElementsByTagName("input"); for (var i = 0; i < test.length; i++) { var cssText = test[i].getAttribute('style'), tabindex = cssText.match(/tabindex\s

我有以下几行Javascript代码:

function SetTabIndex() {
    var test = document.getElementsByTagName("input");

    for (var i = 0; i < test.length; i++) {

        var cssText = test[i].getAttribute('style'),
            tabindex = cssText.match(/tabindex\s*:\s*(\d+)/);

        if (tabindex) {
            test[i].setAttribute('tabindex', tabindex[1]);
        }
    }
}
我已经尝试删除了一些正则表达式代码,但它仍然抛出了一个错误。当我去掉这条线并加入一些控制台输出时,一切正常

尽管我在更新版的IE上对IE8进行了本地测试,并将其设置为模拟IE8,但这在IE8上不起作用,这有什么特别的原因吗?

下面给出了答案:

这里的问题是javascript中的
“\s”
在IE中不包含非中断空间,但在FF中包含非中断空间


所有浏览器中的
cssText
类型和值是否相同?也许IE8返回的不是字符串,它可能没有可用的
match()
函数。上面的代码是从我的本地机器复制并粘贴到另一台机器上的。如何检查匹配返回的内容?
console.log
it来检查它,或者添加额外的调试代码。您可以使用
typeof()
检查类型。那么如何解决此问题?我刚刚删除了\s,但仍然得到相同的结果error@N0xus:直接指定字符类,而不是使用
\s
@nhahtdh如何执行?我从来没有真正用过这种东西before@N0xus:有两种方法:
[\s\u00a0]
(在
\s
中不包含空格),或手动指定
\s
(如果您可能遇到EN空格、EM空格或表意空格,则此方法相当长)。
tabindex = cssText.match(/tabindex\s*:\s*(\d+)/);