datatable clasificación en cadena como número

tengo datatable y quiero ordenarlo como numérico; contiene un valor como 1st, 2nd …., aquí está mi código cuando lo ordeno, clasifica los valores como 1st, 10th, 2nd, así que ¿cómo ordenarlos correctamente?

$('#example').DataTable( { // "columnDefs": [ // { "visible": false, "targets": 4 } // ], "aaSorting": [[1,'asc']], "columnDefs": [ { "targets": [2,5,6], "orderable": false } , { "targets": 0, "orderable": false }, { "width": "5%", "targets": 0 }, { "width": "8%", "targets": 1 }], initComplete: function () { this.api().columns().every( function () { var column = this; var select = $('') .appendTo( $(column.footer()).empty() ) .on( 'change', function () { var val = $.fn.dataTable.util.escapeRegex( $(this).val() ); column .search( val ? '^'+val+'$' : '', true, false ) .draw(); } ); column.data().unique().sort().each( function ( d, j ) { select.append( ''+d+'' ) } ); } ); } }); 

La forma más sencilla que conozco para hacer esto es usar el complemento Formatted Numbers

Aquí hay un ejemplo:

 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; } } ); $('#tbl_jaar').dataTable( { columnDefs: [ { type: 'formatted-num', targets: 0 } ] } ); 
    
Places
1st
2nd
3rd
4th
5th
6th
7th
8th
9th
10th

necesita definir sType como numérico en la columnade donde desea ordenar como número

 $('#example').DataTable( { "aoColumns": [ { "sType": "numeric" }, null, null, null, null ], // define at the place where sorting should by by numeric // other options goes here }); 

// con arriba, la columna en el índice 0 se ordenará por numérico y otras columnas serán detectadas automáticamente. la longitud de aoColumns debe ser igual al número de columnas.

Sugiero usar datos ortogonales y HTML 5 en DataTable. Es una solución simple y buena.

Es una solución simple, ya que no necesita ningún cambio de configuración o encoding adicional.

Y es una buena solución, porque separa los valores de clasificación de la representación de datos. De modo que puede mostrar cualquier cosa al usuario y ordenar por valores como le gustaría.

En cada elemento td debería haber data-order atributo de data-order . Para un ejemplo:

$3,120/m

Más sobre esto https://datatables.net/manual/data/orthogonal-data