Formatted numbers

Sort numbers which are displayed with thousand separators

  • Author: Allan Jardine
  • Deprecated: This plug-in has been deprecated and replaced with other functionality. Please see the detailed description below for more information.

This plug-in will provide numeric sorting for numeric columns which have extra formatting, such as thousands separators, currency symbols or any other non-numeric data.

By default when a cell is found to have no numeric data its value is sorted numerically as if its value were 0. This could also be altered to be Inifnity or -Infinity as required.

DataTables 1.10+ has formatted number detection and sorting abilities built- in. As such this plug-in is marked as deprecated, but might be useful when working with old versions of DataTables.

Plug-in code

jQuery.extend( jQuery.fn.dataTableExt.oSort, {
    "formatted-num-pre": function ( a ) {
        a = (a === "-" || a === "") ? 0 : a.replace( /[^\d\-\.]/g, "" );
        return parseFloat( a );
    },

    "formatted-num-asc": function ( a, b ) {
        return a - b;
    },

    "formatted-num-desc": function ( a, b ) {
        return b - a;
    }
} );

CDN

This plug-in is available on the DataTables CDN:

JS

Note that if you are using multiple plug-ins, it is beneficial in terms of performance to combine the plug-ins into a single file and host it on your own server, rather than making multiple requests to the DataTables CDN.

Version control

If you have any ideas for how this plug-in can be improved, or spot anything that is in error, it is available on GitHub and pull requests are very welcome!

Example

$('#example').dataTable( {
     columnDefs: [
       { type: 'formatted-num', targets: 0 }
     ]
  } );