我已经浏览了为 tablesorter 列出的所有答案,但找不到我要找的内容。
我有一个正在尝试排序的表格,其中一列包含产品型号,其中包括字母和数字,问题是它按字母顺序排序,但数字不按正确顺序排序。例如,排序后的列如下所示:
STRB 18, STRB 19, STRB 2, STRB 20, STRB 23 - 你明白了。
我发现我需要此列按自然顺序排序,但我没有任何 js 排版来执行此操作。如果有人能指出我正确的方向,我将非常感激!
最佳答案
取 self 的一些旧代码
compare = {
natural: function(a, b) {
function prepare(s) {
var q = [];
s.replace(/(\D)|(\d+)/g, function($0, $1, $2) {
q.push($1 ? 1 : 2);
q.push($1 ? $1.charCodeAt(0) : Number($2) + 1)
});
q.push(0);
return q;
}
var aa = prepare(a), bb = prepare(b), i = 0;
do {
if(aa[i] != bb[i])
return aa[i] - bb[i];
} while(aa[i++] > 0);
return 0;
}
}
使用示例
test = ['img100b', 'img21', 'img18', 'img100a', 'img1', 'img2']
console.log(test.sort(compare.natural))
关于javascript - jquery Tablesorter - 自然排序顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6446117/