Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
12436 | guerimand | 1 | (function(){ |
2 | var cleanNumber = function(i) { |
||
3 | return i.replace(/[^\-?0-9.]/g, ''); |
||
4 | }, |
||
5 | |||
6 | compareNumber = function(a, b) { |
||
7 | a = parseFloat(a); |
||
8 | b = parseFloat(b); |
||
9 | |||
10 | a = isNaN(a) ? 0 : a; |
||
11 | b = isNaN(b) ? 0 : b; |
||
12 | |||
13 | return a - b; |
||
14 | }; |
||
15 | |||
16 | Tablesort.extend('number', function(item) { |
||
17 | return item.match(/^[-+]?[£\x24Û¢´€]?\d+\s*([,\.]\d{0,2})/) || // Prefixed currency |
||
18 | item.match(/^[-+]?\d+\s*([,\.]\d{0,2})?[£\x24Û¢´€]/) || // Suffixed currency |
||
19 | item.match(/^[-+]?(\d)*-?([,\.]){0,1}-?(\d)+([E,e][\-+][\d]+)?%?$/); // Number |
||
20 | }, function(a, b) { |
||
21 | a = cleanNumber(a); |
||
22 | b = cleanNumber(b); |
||
23 | |||
24 | return compareNumber(b, a); |
||
25 | }); |
||
26 | }()); |