因此,我已经向表中添加了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/