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

标签 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 中给了我不同的值,而其他浏览器给了我相同的值。那么我的正则表达式有问题吗?

谢谢。

最佳答案

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

total.split(/ /).length;

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

您也可以替换 \v\t

关于javascript - 正则表达式在 FF 和 IE 中给出不同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6440436/

相关文章:

javascript - 没有全局标志的正则表达式分组 OR 运算符匹配策略

regex - sed 命令适用于命令行,但不适用于 bash 脚本

javascript - 为什么 ref 不是子组件中的属性?

javascript - Webpack - 将通用文件导入大型代码库时出现问题

Java 正则表达式不适用于可能值的操作数组

javascript - IE 7 和 8 不识别 jQuery 的高度和宽度?

javascript - IE 中奇怪的 javascript 解码行为

javascript - 通过 JavaScript 检测文档中的希伯来语单词

javascript - bootstrap 3.2 header 在 firefox 和 IE 中损坏。在 chrome + opera 中运行良好

css - 最后一行列表项在 IE7 上缺少底部边距