jQuery dataTables nepali numbers sorting demo
DataTables Examples
HTML
<link rel="stylesheet" href="//cdn.datatables.net/1.10.0/css/jquery.dataTables.css">
<script src="//cdn.datatables.net/1.10.0/js/jquery.dataTables.js"></script>
<table id="example">
<thead>
<tr>
<th>nepalese</th>
<th>latin</th>
</tr>
</thead>
<tbody>
<tr><td>१</td><td>1</td></tr> <!-- 1 -->
<tr><td>२</td><td>2</td></tr> <!-- 2 -->
<tr><td>३</td><td>3</td></tr> <!-- 3 -->
<tr><td>१२</td><td>12</td></tr> <!-- 12 -->
<tr><td>१०</td><td>10</td></tr> <!-- 10 -->
<tr><td>११</td><td>11</td></tr> <!-- 11 -->
<tr><td>२०</td><td>20</td></tr> <!-- 20 -->
<tr><td>२१</td><td> 21</td></tr> <!-- 21 -->
<tr><td>९</td><td>9</td></tr> <!-- 9 -->
</tbody>
</table>
JavaScript
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"nepali-numbers-pre" : function(a) {
function nepaliToLatin(nepali) {
switch(nepali) {
case "०": return 0; break;
case "१": return 1; break;
case "२": return 2; break;
case "३": return 3; break;
case "४": return 4; break;
case "५": return 5; break;
case "६": return 6; break;
case "७": return 7; break;
case "८": return 8; break;
case "९": return 9; break;
default : return 0; break;
}
}
var latin = '', i = 0;
for (i; i<a.length; i++) {
latin += nepaliToLatin(a.charAt(i))
}
return parseInt(latin)
},
"nepali-numbers-asc": function(a, b) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0))
},
"nepali-numbers-desc": function(a, b) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0))
}
} );
var table = $('#example').DataTable({
columnDefs: [
{ type: 'nepali-numbers', targets : 0 }
]
});