javascript - jquery Tablesorter - 自然排序顺序?

标签 javascript jquery tablesorter

我已经浏览了为 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/

相关文章:

javascript - 删除表格 HTML 上的标签

javascript - 如何建立表排序器和可编辑插件之间的关系?

javascript - jQuery - 单击由 AJAX 动态生成的链接

javascript - 如果 parent 关闭,如何关闭 child Accordion ?

Javascript数组按时间排序html表

jQuery "tablesorterPager"无法在 Asp.net MVC 中工作

javascript - 关于 "function invocation and the execution stack"中的示例

javascript - 未按预期获得虚拟 json 响应,但出现错误

javascript - 使用奇数和偶数逻辑执行 2 次 ng-repeat 循环

javascript - 如何在网页上显示全屏日历?