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]; }); }
Alper Bey, büyük İ harfi için çalışmıyor bu kontrol. Yardımcı olabilir misiniz?
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]; });
}
Teşekkür ederim Alper Bey. Çok işime yaradı.
TEŞEKKÜRLER SÜPERMEN
2 gündür uğraşıyordum. Çok yararlı oldu çok teşekkür ederim, emeğinize sağlık.
süpersiniz