jQuery Tablesorter中的ipAddress sorter问题

时间:2015-02-11 11:45:35

标签: javascript jquery tablesorter

所以我已经将jQuery(最新)tablesorter添加到我的表中,除了包含ip地址的列(ipv4)之外,每个列都能正常工作。它排序了大部分,但遗漏了其他一些。

如果我错了,请纠正我,但在这种情况下不需要解析器吗?关于如何解决这个问题的任何想法?

谢谢

2 个答案:

答案 0 :(得分:1)

tablesorter中的ipAddress解析器违反了具有任何单个数字级别的IP地址(例如 123.45.6.78 中的 6 )。

这是股票代码:

USDLibor

以下是更正后的版本:

ts.addParser({
    id: "ipAddress",
    is: function (s) {
        return /^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(s);
    }, format: function (s) {
        var a = s.split("."),
            r = "",
            l = a.length;
        for (var i = 0; i < l; i++) {
            var item = a[i];
            if (item.length == 2) {
                r += "0" + item;
            } else {
                r += item;
            }
        }
        return $.tablesorter.formatFloat(r);
    }, type: "numeric"
});

答案 1 :(得分:0)

您使用的是原始的tablesorter(v2.0.5)还是我的fork of tablesorter

原始的ipAddress解析器包含为one of the default parsers,所以只要ipAddress的格式正确,它就可以工作。

另一方面,tablesorter的分叉版本不再包含tablesorter核心中的ipAddress解析器。它被移动到一个单独的文件(parser-network.js)并重命名为“ipv4Address”(“ipAddress”仍然适用于向后兼容)。图像解析器取而代之。

Here is a demo显示ipv4,ipv6和MAC地址排序。