这可能有点专业,但是无论如何这里是:
参考页:http://greg-j.com/icvm/anticartel/search-results.html
供参考的插件:http://tablesorter.com/
[如果您查看“罚款总额”的最后两列,您会看到货币输出包括$ x.xxx十亿和$ x.xxx百万。内置货币解析器不考虑此格式。幸运的是,该插件可让您编写your own parser。但是,我什么都没走。
看看这是否可行,我还没有测试:
$.tablesorter.addParser({
id: 'monetary',
'is': function(s) {
return false;
},
format: function(s) {
var i = s.split('$').join('');
var suffixes = [
{name:'thousand', mult: 1000},
{name:'million', mult: 1000000},
{name:'billion', mult: 1000000000},
{name:'trillion', mult: 1000000000000}
];
for (var j in suffixes) {
if (i.indexOf(' '+suffixes[j].name) != -1) {
i = i.split(' '+suffixes[j].name).join('');
val = parseFloat(i) * suffixes[j].mult;
}
}
return val;
},
type: 'numeric'
});
$("#cartels").tablesorter({
widgets: ['zebra'],
sortList: [[0,0]],
headers: {
4: {
sorter:'monetary'
},
5: {
sorter:'monetary'
}
}
});
您可以发布您尝试过的代码吗?
[在您发布的示例中,他们似乎正在为每个单词分配一个数字表示形式,然后按此排序:
return s.toLowerCase().replace(/good/,2).replace(/medium/,1).replace(/bad/,0);
因此,在您的情况下,一种方法可能是将零替换为正确的零,十亿替换为零。因此,就解析器而言,基本上一百万美元的评估价值为一百万美元。
return s.toLowerCase().replace(/million/,000000).replace(/billion/,000000000);
因此,一旦评估了替换功能,s
就将评估为$1000000
。只是一个想法。不知道它是否有效,但是它可能会让您走上正确的轨道。