使用连字符

时间:2015-05-26 14:21:45

标签: javascript tablesorter

我有一个以YYYY格式绑定数据的表 - ####。在某些情况下,可能会有值2012-456和2012-1234。默认情况下,2012-1234将在2012-456之前排序。如果我将排序更改为“数字”,那么它会抛弃其他年份(例如:将按照2012-456,2013-555,12012-1234的顺序排序)。我猜我必须在连字符后面的数字前加0,如果少于4位数,但我无法让分拣机工作。我曾尝试过.addParser,但我对此并不熟悉并且没有成功。对于我正在寻找的内容是否有任何好的文章,或者有没有人知道如何实现这一目标?

这是一个示例数据的图像,它排序不正确,需要按年份(前4位)排序,然后按连字后的数字排序:

enter image description here

**此外,日期显然应采用更好的格式,但在这种情况下,我无法调整输入方式。

1 个答案:

答案 0 :(得分:0)

在进一步调试之后,我终于能够使.addParser()工作了,并尽可能地压缩代码。我想因为我是javascript的新手(ish),我没有意识到.length在我的html中计算空格和/或返回。

            $('.tablesorter').tablesorter({
                widgets: ['zebra'],
                headers: {
                    0: {
                        sorter: 'licenseYear'
                    }
                }
            })

            $.tablesorter.addParser({
                id: 'licenseYear',
                is: function (s) {
                    return false;
                },
                format: function (s) {
                    //pad zeros for max length of digits after hyphen
                    var pad = "0000";
                    //replace hyphen with needed zeros to pad number
                    var n = s.replace(/-/, pad.substring(s.length - 5));
                    return n;
                },
                type: 'numeric'
            });

*编辑:在此帖子的帮助下,关于左边填充的压缩代码:convert '1' to '0001' in JavaScript