具有记帐编号格式的jquery表排序器
我正在使用jquery tablesorter,并尝试对具有类似以下值的列进行排序: 100000美元 $38,000 ($4,000) 2000美元 ()中的数据是负数。使用默认排序功能时,它不会将($4000)识别为负数,因此我尝试创建一个自定义函数来处理这个问题 下面的解决方案就是我提出的,而且效果很好。但我想知道是否有更好的解决办法?我是jquery新手,只是想了解一些情况具有记帐编号格式的jquery表排序器,jquery,Jquery,我正在使用jquery tablesorter,并尝试对具有类似以下值的列进行排序: 100000美元 $38,000 ($4,000) 2000美元 ()中的数据是负数。使用默认排序功能时,它不会将($4000)识别为负数,因此我尝试创建一个自定义函数来处理这个问题 下面的解决方案就是我提出的,而且效果很好。但我想知道是否有更好的解决办法?我是jquery新手,只是想了解一些情况 $(document).ready(function() { $.tablesorte
$(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' }
}
});
}
);
同样,它做了需要的事情,我对结果很满意(也许我应该把它留在那里…),但是如果有更好的解决方案,我很乐意听到
谢谢如何删除“,”
因此,您的功能变成:
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),""));
},
^.^您使用的方式没有问题,我进行了搜索。我找到的唯一替代方法是使用一个隐藏列,其中未格式化的值作为浮点值,并按该列排序
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),""));
},