String metodları, string türü veriler üzerinde işlem yaparken faydalandığımız metodlardır.
Normalde String ilkel bir türdür ve ilke türlerde özellik ve metodlar olmaz. Nesnelerin özellikleri ve metodları olur.
Fakat JavaScript ilkel değerler için de metod ve özelliklere sahiptir. Çünkü JavaScript ilkel değerleri işlerken bunlara nesne gibi davranır.
length
özelliği stringin uzunluğunu verir (karakter sayısını, boşluklarda dahil olmak üzere).
Bir string içindeki bir karakterin ya da metnin bir parçasının sıra numarasını (index) bulmak için indexOf
metodu kullanılır.
indexOf
metodu kendine verilen karakteri ya da kelimeyi metnin içinde arar ve bulduğu ilk değerin sıra numarasını verir.
Sıra numarası yani index string işlemlerinde çokca kullanılan bir özelliktir.
var metin = "uzmanim akademi JavaScript için uzmanim akademi ";
var akademiIlkIndeks = metin.indexOff("akademi");
lastIndexOf
metodu kendine verilen karakteri ya da kelimeyi metnin içinde arar ve bulduğu son değerin sıra numarasını verir.
var metin = "uzmanim akademi JavaScript için uzmanim akademi ";
var akademiSonIndeks = metin.lastIndexOff("akademi");
indexOf
ve lastIndexOf
metodu, kendine verilen değeri metin içinde bulamazsa geriye -1
döndürür.
Bunun anlamı değer bulunamadı demektir.
Her iki metod içinde aramamaya başlanılacak başlangıç numarası verilebilir.
Yani diyebilirsinizki "aramaya 10. karakterden sonra başla".
Bunu metoda ikinci bir parametre vererek yaparız.
var metin = "uzmanim akademi JavaScript için uzmanim akademi";
var indeks = metin.indexOf("uzmanim",20);
Metnin içinde kelime aramak için ayrıca search()
metodu vardır. Bu metod indexOf
ile aynı çalışır ama search()
metodu çok daha güçlüdür.
Çok daha fazla parametre alır. Daha fazla seçeneğe sahiptir.
JavaScript ile çoğu zaman metinler üzerinde işlemler yaparız.
Bazen bir metnin içinde kelime arar bazen de metnin içinden belirli bir bölümü çıkartmak isteriz.
JavaScript bu tür metin işlemleri için bize 3 metod sunar:
Bu metodlar ile metinler üzerinde ayrıştırma işlemleri gerçekleştirilir.
slice()
metodu string içinden belirli bir bölümü çıkartmaya yarar.
JavaScript string slice()
metodu iki parametre alır: ilk parametre başlama indeksi, ikinci parametre bitiş indeksidir.
Bu iki indeks numarası arasındaki bölüm metnin içinden çıkartılır ve yeni bir string değer olarak döndürülür:
var str = "Kavun, Karpuz, Kiraz, Erik";
var sonuc = str.slice(15,20);
//sonuc = Kiraz
Eğer parametre değerlerini negatif verirseniz o zaman parçalama işlemi metnin sonundan başlayacaktır.
Aşağıdaki örnekte, işlem sağdan sola 11 karakter ilerleyecek ve kesmeye başlayacaktır.
Kesme işlemi yine sağdan indeksi 6 olan karaktere kadar devam edecek ve iki indeks arasında kalan metin alınacaktır.
var str = "Kavun, Karpuz, Kiraz, Erik";
var sonuc = str.slice(-11,-6);
// sonuc = Kiraz
substring()
bir önceki yöntem olan slice()
ile benzerdir.
İki metod arasındaki fark substring()
metodu negatif değer almaz.
var str = "Kavun, Karpuz, Kiraz, Erik";
var sonuc = str.substring(7,13);
//sonuc = Karpuz
Eğer ilk parametreyi atlarsanız, parametreyi başlangıç indeksi olarak alacaktır.
substr()
metodu slice()
metodu ile benzerdir.
İkisi arasındaki fark, substr()
metodunun ikinci alacağı parametre çıkartılacak metnin uzunluğunu belirtir.
Eğer ilk parametre negatif olursa, başlama pozisyonu metnin sonundan hesaplanır.
İkinci parametre negatif olamaz.
İkinci parametre atlanırsa, başlangıç indeksinden sonraki tüm metin alınır.
replace()
metodu ile bir metnin içinde arama yapıp, bulduğumuz değerleri yine istediğimiz bir değer ile değiştirebiliriz.
Varsayılan olarak JavaScript string replace() metodu, sadece ilk bulduğu değeri değiştirir.
var str = "uzmanim.net'i ziyaret edin";
var yeni = str.replace("uzmanim.net","uzmanimakademi.net");
Yukarıdaki örnekte "uzmanim.net" değeri "uzmanimakademi.net" ile değiştirilecektir.
Eğer metnin içinde birden fazla "uzmanim.net" varsa ve tümünü değiştirmek istersek o zaman regular expression yani düzenli ifadelerden yararlanmamız lazım.
regular expression ile ilgili detaylı bilgi sonra verilecektir:
var str = "uzmanim.net: Lütfen uzmanim.net'i ziyaret edin!";
var degistirilmis = str.replace(/uzmanim.net/g,"uzmanimakademi.net");
Eğer bir metni tamamen büyük harfe çevirmek isterseniz JavaScript string toUpperCase()
metodunu kullanabilirsiniz.
Eğer bir metni tamamen küçük harfe çevirmek isterseniz JavaScript string toLowerCase()
metodunu kullanabilirsiniz:
concat()
metodu iki veya daha fazla stringi birleştirmeye yarar.
Daha önceden string birleştirme için +
operatörünü kullanmıştık. concat() de aynı işlevi görür.
var metin1 = "uzmanim";
var metin2 = "akademi";
var metin3 = metin1.concat(" ", metin2);
Elinizde bir ayırıcı ile ayrılmış veri varsa bunu parçalara bölmek, bir diziye aktarmak isteyebilirsiniz.
Örneğin mart, nisan, mayıs
şeklinde virgül ile ayrılmış verimiz olsun.
JavaScript string split()
metonu ile bu veriyi ayrıştırmak ve ayları bir diziye yerleştirmek mümkündür.
Bu şekilde belirli bir ayıraç ile gelen veriyi kolayca parçayalabilir, daha düzenli veri elde edebiliriz.