Sort Turkish characters

Sorting in Javascript for Turkish Characters. This plug-in will replace the special turkish letters (non english characters) and replace in English.

Plug-in code

jQuery.extend( jQuery.fn.dataTableExt.oSort, {
    "turkish-pre": function ( a ) {
        var special_letters = {
            "C": "Ca", "c": "ca", "Ç": "Cb", "ç": "cb",
            "G": "Ga", "g": "ga", "Ğ": "Gb", "ğ": "gb",
            "I": "Ia", "ı": "ia", "İ": "Ib", "i": "ib",
            "O": "Oa", "o": "oa", "Ö": "Ob", "ö": "ob",
            "S": "Sa", "s": "sa", "Ş": "Sb", "ş": "sb",
            "U": "Ua", "u": "ua", "Ü": "Ub", "ü": "ub"
        for (var val in special_letters)
           a = a.split(val).join(special_letters[val]).toLowerCase();
        return a;

    "turkish-asc": function ( a, b ) {
        return ((a < b) ? -1 : ((a > b) ? 1 : 0));

    "turkish-desc": function ( a, b ) {
        return ((a < b) ? 1 : ((a > b) ? -1 : 0));
} );


This plug-in is available on the DataTables CDN:


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!


// Use plug-in for all columns
     columnDefs: [
         { type: 'turkish', targets: '_all' }