String Metotları

Büyük-Küçük Harf Çevrimi

.toLowerCase() | .toUpperCase()

Bir karakter dizisinin karakterlerini (harflerini) büyük olarak .toUpperCase() metoduyla, küçük olarak .toLowerCase() metoduyla dönüştürebiliriz. Örnek:

let karakterDizisi = 'İstiklal Marşı';
alert( karakterDizisi.toUpperCase() ); // Büyük harf yaptık.
alert( karakterDizisi.toLowerCase() ); // Küçük harf yaptık.

Karakterin Pozisyonunu Bulma

.indexOf() | .lastIndexOf() | .search()

Bir karakter dizisinin içinde geçen alt karakter veya karakterleri arayarak ilk geçtiği pozisyonu .indexOf() metodu ile buluruz. .indexOf() metodu iki parametre alır, biri zorunlu diğeri isteğe bağlıdır. Kullanım: .indexOf(arananKarakter, aramayaBaslamaPozisyonu) şeklindedir ve aranan karakter zorunludur fakat aramaya başlama pozisyonu zorunlu değildir. Yazılmaz ise ilk karakterden yani 0. pozisyondan başlar. Örnek:

let deyim = 'Dediğimi yap, yaptığımı yapma';
alert( deyim.indexOf('Dedi') ); // İlk geçtiği poz. 0 sonucunu verir.
alert( deyim.indexOf('yap') ); // İlk geçtiği poz. 9 sonucunu verir.
alert( deyim.indexOf('Dedi',6) ); // Bulamaz -1 sonucunu verir.

Aranan karakter bulunamazsa -1 sonucunu verir. Aranan karakterin birden fazla pozisyonu var ise hepsini bulmak için bir döngüye ihtiyaç vardır. Bunu ilerleyen konularda işleyeceğiz.

Bir de sondan arama şekli olan .lastIndexOf() metodu vardır. Örnek.

let deyim = 'Dediğimi yap, yaptığımı yapma';
alert( deyim.lastIndexOf('yap') ); // Sondan başa ilk geçtiği poz. 24 sonucunu verir.

.lastIndexOf() metodu .indexOf() metoduna göre daha az kullanılan bir metottur.

Bir karakter dizisinin içinde geçen ifadeyi ise .search() metodu ile buluruz. Örnek.

let deyim = 'Dediğimi yap, yaptığımı yapma';
alert( deyim.search('yap') ); // 'yap' ilk başladığı indisi verir.

.search() metodu alt karakter aramaktan çok ifade aramaya yöneliktir. Bu konuyu ileride Düzenli İfadeler konusunda işleyeceğiz.

Karakter Kontrolü ( İçeriyor mu? Başlıyor mu? Bitiyor mu? )

.includes() | .startsWith() | .endsWith()

Bir karakter dizisinin içinde geçen alt karakter veya karakterlerin pozisyonu sizi ilgilendirmiyorsa sadece varlık/yokluk arıyorsanız bu metotları kullanmalısınız.

  • İçeriyor mu?: .includes(arananKarakter, aramayaBaslamaPozisyonu)

  • Başlıyor mu?: .startsWith(baslananKarakter)

  • Bitiyor mu?: .endsWith(baslananKarakter)

Bu metotların sonucu True (doğru) veya False (yanlış) olarak döner. Örnek.

let tekerleme = 'Dal sarkar kartal kalkar, kartal kalkar dal sarkar';
alert( tekerleme.includes('kar') ); // True: Bulundu
alert( tekerleme.includes('kartal', 45) ); //False: 45.Pozisyondan sonra bulunamadı

alert( tekerleme.startsWith('Dal') ); //True: 'Dal' ile başlıyor.
alert( tekerleme.startsWith('dal') ); //False: 'dal' ile başlamıyor.

alert( tekerleme.endsWith('kar') ); //True: 'kar' ile bitiyor.
alert( tekerleme.endsWith('.') ); //False '.' ile bitmiyor.

Karakteri Değiştirme

.replace() | replaceAll()

Bir karakter dizisinde geçen bir ifadeyi başka bir ifade ile değiştirmek için .replace() metodu kullanılır. İki tane zorunlu parametresi vardır ve .replace(arananIfade, yerineKonulacakIfade) olarak kullanılır. Örnek.

let ifade = 'JAVASCRIPT JAVASCRIPT';
alert ( ifade.replace('AVASCRIPT','avascript') );

Aranan ifade ilk bulunduğu yerde değişir ve metot sonlanır. Tüm eşleşmelerin değişmesi için .replaceAll() metodu kullanılır.

let ifade = 'JAVASCRIPT JAVASCRIPT';
alert ( ifade.replaceAll('AVASCRIPT','avascript') );

Karaktere Pozisyon ile Erişme

.at() | .charAt() | [ ]

Bir karakter dizisinin karakterlerine .at() ile erişebiliriz. Bir karakter dizisinin ilk karakteri her zaman 0.indisten (pozisyondan) başlar. Örnek

let kelime = 'Javascript';
alert( kelime.at(0) ); // 'J' harfi çıktısı alınır.
alert( kelime.at(1) ); // 'J' harfi çıktısı alınır.
alert( kelime.at(-1) ); // 't' harfi çıktısı alınır.
alert( kelime.at(-2) ); // 'p' harfi çıktısı alınır.
alert( kelime.at(100) ); // 'undefined' çıktısı alınır.

.at() metodu ile negatif sayılar kullandığınızda sağ baştan başlayarak size karakterleri verir. Geçersiz başvuru yaptığınızda ise 'undefined' değerini alırsınız.

Aynı işlemi .charAt() metodu ile de yapabilirsiniz. Örnek.

let kelime = 'Javascript';
alert( kelime.charAt(0) ); // 'J' çıktısı alınır.
alert( kelime.charAt(1) ); // 'a' çıktısı alınır.
alert( kelime.charAt(kelime.length-1) ); // 't' çıktısı alınır.
alert( kelime.charAt(-1) ); // '' çıktısı alınır.
alert( kelime.charAt(100) ); // '' çıktısı alınır.

Fakat .charAt() metodu ile geçersiz veya negatif bir başvuru yaptığınızda boş değer elde edersiniz.

let kelime = 'Javascript';
alert( kelime.charAt(1000) ); // '' çıktısı.
alert( kelime.charAt(-1) ); // '' çıktısı.

Bir karakter dizisinin tüm karakterlerine [ ] ile de erişebiliriz. Örnek

let kelime = 'Javascript';
alert( kelime[0] ); // 'J' harfi çıktısı alınır.
alert( kelime[1] ); // 'a' harfi çıktısı alınır.
alert( kelime[kelime.length-1] ); // Son harf 't' harfi çıktısı alınır.
alert( kelime[-1] ); // 'undefined' çıktısı alınır.
alert( kelime[100] ); // 'undefined' çıktısı alınır.

Köşeli parantez içinde negatif sayı veya geçersiz başvuru kullanıldığında 'undefined' değeri verir.

.charAt() metodu ile negatif veya geçersiz bir başvuru yaptığınızda boş değer elde edersiniz. Diğerleri ile arasındaki fark sadece budur.

let kelime = 'Javascript';
alert( kelime.charAt(100) ); // '' çıktısı.
alert( kelime.at(100) ); // 'undefined' çıktısı.
alert( kelime.[100] ); // 'undefined' çıktısı.

Bir string'te eriştiğiniz karakterin değerini tekil olarak değiştiremezsiniz. Örnek.

let kelime = 'Javascript';
kelime.charAt(0) = 'H'; // hata fırlatır.
kelime.at(0) = 'H';  // hata fırlatır.
kelime.[0] = 'H';  // hata fırlatır.
alert(kelime); // hatalar yüzünden çalışmaz.

String'i Dilimleme

.substring() | .slice() | .split()

Bir karakter dizisinin alt karakterlerini .substring() metodu ile dilimleyebilirsiniz. .substring(baslama, bitis) olarak pozisyonları verilerek dilimlenir. Bitiş parametresine kadar olan karakterler dilimlenmiş olur. Bitiş parametresinin olduğu karakter katılmaz. Ayrıca bitiş parametresi vermek zorunlu değildir. Verilmezse dizinin sonuna kadar (.length) dilimler. Örnek.

let kelime = 'Javascript Programalama Dili';
alert( kelime.substring(24) ); // Bitiş parametresi yok. Sona kadar gider: 'Dili'
alert( kelime.substring(4,10) ); // 4'ten 10'a kadar gider (10 dahil değil):'script'

.substring() metodu ile negatif parametreler verirseniz sıfır kabul eder. Ayrıca bitiş parametresini sıfır verirseniz parametreleri tersine çevirir.

let kelime = 'Javascript Programalama Dili';
alert( kelime.substring(-250,4) ); // (0,4) kabul eder: 'Java' çıktısı verir.
alert( kelime.substring(4,0) ); // Parametreleri ters (0,4) çevirdi: 'Java'
alert( kelime.substring(4,-250) ); // Ters çevirdi (0,4): 'Java' çıktısı verir.

Bir karakter dizisinin alt karakterlerini .slice() metodu ile de dilimlenir. substring() ile farkı negatif sayılar da kabul etmesidir. Negatif sayılarda sağdan başlar fakat yine de soldan sağa doğru ilerleyerek dilimler. .slice(baslama, bitis) olarak parametreleri verilir.

let kelime = 'Javascript Programalama Dili';
alert( kelime.slice(0,4) ); //'Java'
alert( kelime.slice(24) ); // 'Dili'
alert( kelime.slice(-4,-1) ); // 'Dil' son karakteri dilemez.
alert( kelime.slice(-28, -24) ); // Ters çevirdi (0,4): 'Java' çıktısı verir.

.split() metodu ile bir karakter dizisini belirli karakterlerden ayırmamıza yarar. Fakat elde edilen değişken tipi string olmaz.

let kelime = 'Türkiye Büyük Millet Meclisi';
alert( kelime.split(' ') ); //Boşluklardan böldük. Çıktı: Türkiye,Büyük,Millet,Meclisi
alert( kelime.split('i') ); //'i'lerden böldük. Çıktı: Türk,ye Büyük M,llet Mecl,s,

Bir değişkene atarsak yeni değişken tipinin object (nesne) olduğunu görebiliriz.

let kelime = 'Türkiye Büyük Millet Meclisi',
    yeni = kelime.split(' ');
alert( typeof(yeni) ); // 'object' çıktısı verir

Yukarıdaki metotlar ile genel olarak karakter dizilerinin içindeki alt karakterler üzerinden işlemler yapılır. Yani aradığınız karakterler aynen olduğu gibi karakter dizisinin içinde aranır ve sonuç birebir eşleşme üzerinden çıkar. Peki siz çeşitli şekillerdeki yazımı (büyük, küçük vb.) fark etmeksizin bir ifadeye erişip işlem yapmak istiyorsanız ?

Bu durumda Düzenli İfadeler (Regular Expressions) ile işlemler yapmanız gerekir. İleri konularda Düzenli İfadeler işlenecek.

Birleştirme, Kırpma, Tekrar Etme

.concat() | .trim() | .trimStart() | .trimEnd() | .repeat()

Karakter dizilerini .concat() metodu ile birleştirebilirsiniz. Parametre olarak istediğiniz kadar string verebilirsiniz.

let str1 = 'Türkiye';
let str2 = 'Büyük';
let str3 = 'Millet';
let str4 = 'Meclisi';
let kelime = ''; //boş bir string tanımladık.
kelime = kelime.concat(str1,' ',str2,' ',str3,' ',str4);
alert(kelime);
// Daha kısa ifadeyle
//kelime = str1.concat(' ',str2,' ',str3,' ',str4);

.concat() metodu yerine matematiksel toplama yöntemi de yapılabilir. Örnek.

let str1 = 'Türkiye';
let str2 = 'Büyük';
let str3 = 'Millet';
let str4 = 'Meclisi';
let kelime = str1 + ' ' + str2 + ' ' + str3 + ' ' + str4;
alert(kelime);

.trim() metodu ile bir karakter dizisinin başındaki ve sonundaki tüm boşlukları silebilirsiniz. Sadece baştakiler için .trimStart() sadece sondakiler için .trimEnd() metotlarını kullanabilirsiniz. Örnek.

let kelime = '   Merhaba   Javascript    ';
alert( kelime.trim() ); // 'Merhaba   Javascript'
alert( kelime.trimStart() ); // 'Merhaba   Javascript    '
alert( kelime.trimEnd() ); // '   Merhaba   Javascript'

Bir karakter dizisini n kere tekrar ettirmek için .repeat() metodu kullanılır. Örnek.

let selam = 'Merhaba ';
alert( selam.repeat(3) ); // 'Merhaba Merhaba Merhaba '

Last updated