正则表达式在FF和IE中给出不同的输出

时间:2011-06-22 13:12:35

标签: javascript regex internet-explorer cross-browser

我的问题是,当我使用此代码时:

var queuediv = document.getElementById('MSO_ContentTable');
var total = get_text(queuediv);
countTotal = total.split(/\s+/).length;

这是函数

function get_text(el) {
    ret = "";
    var length = el.childNodes.length;
    for (var i = 0; i < length; i++) {
        var node = el.childNodes[i];
        if (node.nodeType != 8) {
            ret += node.nodeType != 1 ? node.nodeValue : get_text(node);

        }
    }
    return ret;
}

它在IE中给出了不同的值,其他浏览器给出了相同的值。我的正则表达式有问题吗?

感谢。

1 个答案:

答案 0 :(得分:2)

您正在按空格字符(换行符,制表符...)进行拆分。这些似乎在不同浏览器的DOM表示中有所不同。我假设你试图分裂单词。尝试:

total.split(/ /).length;

total.replace(/\n\r\f/, '').split(/\s/).length

您也可以替换\v\t