1234567891011121314151617181920212223242526 |
- (function(){
- var cleanNumber = function(i) {
- return i.replace(/[^\-?0-9.]/g, '');
- },
- compareNumber = function(a, b) {
- a = parseFloat(a);
- b = parseFloat(b);
- a = isNaN(a) ? 0 : a;
- b = isNaN(b) ? 0 : b;
- return a - b;
- };
- Tablesort.extend('number', function(item) {
- return item.match(/^-?[£\x24Û¢´€]?\d+\s*([,\.]\d{0,2})/) || // Prefixed currency
- item.match(/^-?\d+\s*([,\.]\d{0,2})?[£\x24Û¢´€]/) || // Suffixed currency
- item.match(/^-?(\d)*-?([,\.]){0,1}-?(\d)+([E,e][\-+][\d]+)?%?$/); // Number
- }, function(a, b) {
- a = cleanNumber(a);
- b = cleanNumber(b);
- return compareNumber(b, a);
- });
- }());
|