具有会计数字格式的jquery tablesorter

时间:2009-05-05 16:35:32

标签: jquery

我正在使用jquery tablesorter,我正在尝试使用与此类似的值对列进行排序:

$ 100,000  $ 38,000名  ($ 4,000)   $ 2,000

()内的数据是负数。使用默认排序功能时,它不会将($ 4,000)识别为负数,因此我正在尝试创建自定义函数来处理此问题。

以下解决方案是我提出的,它运行正常。但我想知道是否有更好的解决方案?我是jquery的新手,只是寻找一些见解。

$(document).ready(function() 
    { 
        $.tablesorter.addParser({
                // set a unique id
                id: 'currency-column',
                is: function(s) {
                        // return false so this parser is not auto detected
                        return false;
                },
                format: function(s) {
                         s = s.replace(/$/g,"");
                         s = s.replace(/\(/g,"-");
                         s = s.replace(/\)/g,"");
                         return $.tablesorter.formatFloat(s.replace(new RegExp(/[^0-9.-]/g),""));
                },

                type: 'numeric'
        });

        $("#myTable").tablesorter({
            headers: {
                3: { sorter:'currency-column' },
                4: { sorter:'currency-column' },
                5: { sorter:'currency-column' },
                6: { sorter:'currency-column' },
                7: { sorter: false },
                10: { sorter:'currency-column' }
            }
        }); 

    } 
);

同样,它做了所需要的事情,我对结果感到满意(也许我应该把它放在那里......),但是如果有更好的解决方案,我很乐意听到它。

由于

1 个答案:

答案 0 :(得分:2)

如何删除“,”

s = s.replace(/,/g,"");

所以,你的功能变成了:

format: function(s) {
         s = s.replace(/$/g,"");
         s = s.replace(/\(/g,"-");
         s = s.replace(/\)/g,"");
         s = s.replace(/,/g,"");
         return $.tablesorter.formatFloat(s.replace(new RegExp(/[^0-9.-]/g),""));
},

^。^