所以我已经将jQuery(最新)tablesorter添加到我的表中,除了包含ip地址的列(ipv4)之外,每个列都能正常工作。它排序了大部分,但遗漏了其他一些。
如果我错了,请纠正我,但在这种情况下不需要解析器吗?关于如何解决这个问题的任何想法?
谢谢
答案 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地址排序。