因此,我已经向表中添加了jQuery(latest)tablesorter,除包含ip地址(ipv4)的列之外,所有列均正常运行。它正在对大多数内容进行排序,但省略了其他内容。

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

谢谢

最佳答案

tablesorter中的ipAddress解析器相对于具有任何一位数字级别(例如123.45.6.78中的6)的IP地址都是无效的。

这是股票代码:

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"
});


这是更正的版本:

ts.addParser({
    id: "ipAddress",
    is: function (s) {
        return /^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$/.test(s);  /* CHANGED */
    }, 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 == 1) {                 /* NEW */
                r += "00" + item;                   /* NEW */
            } else if (item.length == 2) {          /* CHANGED */
                r += "0" + item;
            } else {
                r += item;
            }
        }
        return $.tablesorter.formatFloat(r);
    }, type: "numeric"
});

关于javascript - jQuery Tablesorter中的ipAddress排序器问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28453566/

10-10 01:12