jquery tablesorter – 用空格排序数字

我有jQuery tablesorter的问题和12 345 678,91之类的数字

$(document).ready(function() { $.tablesorter.addParser({ id: 'thousands', is: function(s) { return false; }, format: function(s) { return s.replace(' ','').replace(/,/g,''); }, type: 'numeric' }); $("#tablesorter").tablesorter({ headers: { 3: { sorter:'thousands' }, 4: { sorter:'thousands' }, 5: { sorter:'thousands' } } }); }); 

输出filter:

 -1 295,76 -331,2 -330,01 -290 0 3 986 495,06 1 942 503,09 0 0 

当我替换它:s.replace(”,”)。replace(/,/ g,”); 通过这个:s.replace(new RegExp(/ [^ 0-9 / A-Za-z。] / g),“”); ……比现在还要糟糕。 有任何想法吗?

解析器不会替换所有空格; 使用replace(' ','')只会替换第一个空格。 此外,逗号应替换为小数点,因为它表示分数。 所以,试试这个( 演示 ):

 $.tablesorter.addParser({ id: 'thousands', is: function (s) { return false; }, format: function (s) { return s.replace(/\s+/g, '').replace(/,/g, '.'); }, type: 'numeric' }); 

Internet Explorer将空格转换为  。 对我来说这是:

 return s.replace(/ /g,'').replace(/\s+/g, '') 

@ Triple_6:

在实现解决方案之前理解其含义:我的猜测是你不想要空格,或者只是纯数字。

下面的表达式意味着用“”替换数字,字母,小数点和空格以外的所有内容。

 s.replace(new RegExp(/[^0-9/A-Za-z. ]/g),""); 

以上是我的建议。

解:

如果你不想要空格,那么从表达式中删除它。

 s.replace(new RegExp(/[^0-9/A-Za-z.]/g),""); 

如果您想拥有该标志,那么请包含该标志

 s.replace(new RegExp(/[^0-9/A-Za-z.+-]/g),""); 

正则表达式的含义:新的RegExp(/ [除了这个列表] / g),“用这个替换所有东西”);

工作jsfiddle: http : //jsfiddle.net/rK5s4/1/

下一次确实要提到你想要多次删除某些东西。 你的问题并不清楚。

在合并之前,也尝试将它们放入jsfiddle。