所以我在表中添加了jQuery(最新)表分类器,除了包含ip地址(ipv4)的列之外,每一列都能完美工作。它对其中的大部分进行了分类,但忽略了其他一些。
如果我错了,请纠正我,但在这种情况下不需要解析器,对吧?关于如何解决这个问题有什么想法吗?
感谢
对于具有任何个位数级别的IP地址(例如,123.45.6.78中的6),表分类器中的ipAddress解析器已损坏。
这是股票代码:
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"
});
您使用的是原始的表分类器(v2.0.5)还是我的表分类器分支?
原始版本包含一个ipAddress解析器作为默认解析器之一,因此只要ipAddress的格式正确,它就应该可以工作。
另一方面,表分类器的分叉版本不再在表分类器核心中包含ipAddress解析器。它被移到一个单独的文件(parser-network.js)中,并重命名为"ipv4Address"("ipAddress"仍然适用于向后兼容性)。取而代之的是图像解析器。
这里有一个演示显示ipv4,ipv6和MAC地址排序。