Subversion Repositories wimsdev

Rev

Blame | Last modification | View Log | RSS feed

  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. }());
  27.