Jquery indexOf Türkçe Karakter Sorunu

Latin alfabesinden farklı harflerimiz olan (ı,ğ,ü,ş,i,ö,ç) gibi karakterler yüzünden her projede her yurdum insanı sorun ile karşılaşmıştır. Allah çinli, japon kardeşlerimizin yardımcısı olsun.

Javascript ile jQuery kütüphanesini kullanarak menüdeki aradığım kelimeye ait içeriği getirmeye yarayan ufak bir betik ile uğraştım. Eğer bu şekilde yapamasaydım ajax ile aradığım kelimeyi veritabanından sorgulatacaktım.

Örnek olarak şehir listemde aradığım İstanbul’u “İst” ile bulabiliyorum ama “ist” ile bulamamaktı.

Aşağıda örnek ve kaynak kodları bulabilirsiniz.

jQuery indexOf Türkçe Karakter Sorunu Uygulaması Örnek Sayfa – İlgili sayfanın çözdüğüm kodlama yapısı

$('#aramaMetin').keyup(function( event ){
 if ( !$(this).val() ){
 $('#aramaList').css('display','none');
 } else {
 $('#aramaList').css('display','block');
 var dInput = $(this).val();
 if ( dInput.search('ü') > -1 ){dInput = dInput.replace(/ü/g,'[üÜ]');} else if ( dInput.search('Ü') > -1 ){dInput = dInput.replace(/Ü/g,'[üÜ]');}
 if ( dInput.search('ı') > -1 ){dInput = dInput.replace(/ı/g,'[ıI]');} else if ( dInput.search('I') > -1 ){dInput = dInput.replace(/I/g,'[ıI]');}
 if ( dInput.search('i') > -1 ){dInput = dInput.replace(/i/g,'[iİ]');} else if ( dInput.search('İ') > -1 ){dInput = dInput.replace(/İ/g,'[iİ]');}
 if ( dInput.search('ğ') > -1 ){dInput = dInput.replace(/ğ/g,'[ğĞ]');} else if ( dInput.search('Ğ') > -1 ){dInput = dInput.replace(/Ğ/g,'[ğĞ]');}
 if ( dInput.search('ş') > -1 ){dInput = dInput.replace(/ş/g,'[şŞ]');} else if ( dInput.search('Ş') > -1 ){dInput = dInput.replace(/Ş/g,'[şŞ]');}
 if ( dInput.search('ç') > -1 ){dInput = dInput.replace(/ç/g,'[çÇ]');} else if ( dInput.search('Ç') > -1 ){dInput = dInput.replace(/Ç/g,'[çÇ]');}
 dInput = new RegExp( dInput , "i");

 $("#aramaList li").css("display","none").filter(function() {
 return $(this).text().search(dInput) > -1;
 }).css("display","block");
 }
 return true;
});

Uygulamayı indirmek için tıklayınız

Paylaş: