jQuery DataTables Türkçe Karakter Arama Sorunu

Merhaba arkadaşlar,

Jquery DataTables kullanımında arama yaparken Türkçe karakter problemi bulunmaktadır. Bunun çözümü içinde js kodlarımızda küçük bir değişiklik yapmamız gerekiyor. dataTables.js dosyamızın içinde “_fnEscapeRegex” fonksiyonumuzu aşağıda belirttiğim şekilde değiştirmek gerekiyor.

iyi çalışmalar

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]; });
}

jQuery DataTables Türkçe Karakter Arama Sorunu” hakkında 6 yorum

    1. Alper Kırmızıgül Yazar

      Merhaba,

      DataTable güncellemesi ile birlikte bir çok arkadaşımızdan geri dönüş oldu.
      1.10.20 versiyonu ile birlikte jquery.DataTable.js kodlarımızda aşağıdaki değişikliği yapmanız gerekmektedir.


      /**
      * Escape a string such that it can be used in a regular expression
      *
      * @param {string} val string to escape
      * @returns {string} escaped string
      */
      escapeRegex: function ( val ) {
      var letters = { "İ": "[İi]", "I": "[Iı]", "Ş": "[Şş]", "Ğ": "[Ğğ]", "Ü": "[Üü]", "Ö": "[Öö]", "Ç": "[Çç]", "i": "[İi]", "ı": "[Iı]", "ş": "[Şş]", "ğ": "[Ğğ]", "ü": "[Üü]", "ö": "[Öö]", "ç": "[Çç]" };
      var acEscape = [ '/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\', '$', '^', '-' ];
      var reReplace = new RegExp( '(\\' + acEscape.join('|\\') + ')', 'g' );
      val=val.replace(reReplace, '\\$1');

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

      Cevapla

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*