9 Ekim 2014 Perşembe

Datatables Türkçe Karakter Sorununa Çözüm

Datatables kullanırken karşılaşılan türkçe karakter ile süzme işlemini çözmek için jquery.dataTables.js dosyasında ki _fnEscapeRegex fonksiyonun içeriğini aşağıda ki şekilde değiştirmek yeterli...

function _fnEscapeRegex ( sVal ) {

        var letters = { "İ": "[İi]", "I": "[Iı]", "Ş": "[Şş]", "Ğ": "[Ğğ]", "Ü": "[Üü]", "Ö": "[Öö]", "Ç": "[Çç]", "i": "[İi]", "ı": "[Iı]", "ş": "[Şş]", "ğ": "[Ğğ]", "ü": "[Üü]", "ö": "[Öö]", "ç": "[Çç]" };
        var acEscape = [ '/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\', '$', '^', '-' ];
        var reReplace = new RegExp( '(\\' + acEscape.join('|\\') + ')', 'g' );
        sVal=sVal.replace(reReplace, '\\$1');

        return sVal.replace(/(([İIŞĞÜÇÖiışğüçö]))/g, function (letter) { return letters[letter]; });
    }

3 yorum:

  1. İşe yaradı. Allah razı olsun.

    jquery.dataTables.js dosyasında bu satırı silin:
    "var _fnEscapeRegex = DataTable.util.escapeRegex;"


    Yukardaki kodu bu satırın yerine yazın.

    YanıtlaSil
  2. Bravo mükemmel. Tüm Türkçe karakterleri; baştan, sondan, ortadan, Büyük küçük harf fark gözetmeksizin arama yapıyor.

    YanıtlaSil
  3. Bravo, mükemmel. Tüm Türkçe karakterleri; büyük ya da küçük harf fark gözetmeksizin, en başta, ortada ya da sonda, sorunsuz arama yapıyor. Ajax'ın bu problemine uzun süredir çözüm arıyordum.

    YanıtlaSil