Javascript ile string degiskenler üzerinde nasil çalisilir. Metin içindeki bir karakterin indeksini bulmak, metnin bir kismini almak, büyük küçük harfe döndürmek, metni parçalara bölmek, metnin uzunlugunu almak, metin içindeki istedigimiz bir karakteri veya metni baskasi ile degistirmek gibi islemler nasil yapilir. Bu tür islemler kuskusuz hepimizin isine yarayacaktir.
indexOf
Bir stringi olusturan her karakterin bir indeks numarasi vardir. Stringin birinci karakteri 0 indeksinde bulunur. indexOf fonksiyonu verdigimiz karakter veya metnin string içinde geçtigi ilk indeks numarasini döndürür.
var a = "yazilim mutfagi";
document.write(a.indexOf("z"));
sonuç olarak 2 sayisi döner.
Eger verdigimiz karakter birden fazla dönüyorsa sadece ilk geçen indeks numarasini aliriz.
var a = "yazilim mutfagi";
document.write(a.indexOf("a"));
sonuç olarak 1 sayisini aliriz.
indexOf fonksiyonunun kullanisli bir özelligide string içerisinde hangi indeksden sonra arama yapacagini söyleyebiliyor olmamiz.
var a = "yazilim mutfagi";
document.write(a.indexOf("a",3));
sonuç 12 olarak döner. Çünkü yukaridaki kullanim sekli stringin 3. Indeksinde sonra geçen ilk a karakterininin indeks numarasini döndürür.
indexOf içine yazdigimiz karakter veya metin string içinde yoksa sonuç olarak -1 döner.
lastIndexOf
indexOf fonksiyonu gibi çalisir tek farki yazilan karakterin string içinde geçtigi son indeks numarasini döndürür.
var b = "yazilim mutfagi";
document.write(a.lastIndexOf("i"));
sonuç olarak 14 döner.
charAt
Verilen indeks numarasindaki karakteri döndürür.
var a = "yazilim mutfagi";
document.write(a.charAt(4));
sonuç olarak ‘l’ karakteri döner. Ilk sndeks 0 oldugu için 4 indeksdeki karakter ‘l’ oluyor.
length
length özelligi stringin toplam kaç karakterden olustugunu döndürür, bosluklar dahildir. Kisaca uzunlugunu döndürür.
var a = "yazilim mutfagi";
document.write(a.length);
sonuç olarak 15 döner.
split
Split fonksiyonu belirlediginiz özel bir karaktere göre stringiniz parçalara böler. Splitten dönen degeri bir diziye koymak zorundasiniz. Netscape 2 ve Explorer 3 de çalismaz.
var a = "yazilim mutfagi";
var temp = new Array();
temp = a.split(‘ ‘);
sonuç olarak yazilim mutfagi stringi içindeki bosluklara göre elemanlarina ayrildi yukardaki script sonucunda temp dizisi iki adet elemana sahip oldu. Birinci elemani ‘yazilim’ ikinsi elemani ise ‘mutfagi’.
substring
substring fonksiyonu string içerisindeki belli bir bölümü almamiza yarar yazim sekli substing(ilk_indeks, son_indeks) seklindedir.
var a = "yazilim mutfagi";
document.write(a.substring(2,5));
sonuç olarak ‘zil’ metini döner. Dikkat ederseniz 2. Karakter z 5. Karakter ise i dir fakat substring fonskiyonu ikinci parametre olarak yazilan degere kadar olan metni döndürür. Son indeks olarak yazdigimiz parametrede bulunan karakter dahil degildir.
substring fonksiyonu tek parametre alarakda kullanilir bu durumda parametre olarak yazilan indeks numarasindan itibaren geri kalan tüm metni döndürür.
var a = "yazilim mutfagi";
document.write(a.substring(2));
sonuç olarak ‘zil mutfagi’ döner.
substr
substing fonksiyonundan farkli olarak ikinci parametre olarak yazilan kisim farklidir. Ikinci parametreye yazilan sayi kadar karakter döndürür.
var a = "yazilim mutfagi";
document.write(a.substr(2,7));
sonuç olarak ‘zilim m’ döner. 2. Karakterden baslayarak 7 karakter döndürür.
substr() fonksiyonu Netscape 2 and 3, Explorer 3, Hotjava 3, Opera 3 and WebTVtarafindan deskteklenmez.
toLowerCase ve toUpperCase
toLowerCase fonksiyonu verilen metni küçük harflere dönüstürürken toUpperCase fonksiyonu metni büyük harflere çevirir.
var a = "yazilim mutfagi";
document.write(a.toUpperCase());
sonuç olarak ‘YAZILIM MUTFAGI’ metni döner.
var a = "YAZILIM MUTFAGI ";
document.write(a.toLowerCase());
sonuç olarak ‘yazilim mutfagi’ metni döner.
replace
replace fonksiyonu metin içinde herhangi bir karakter veya metni baska bir karakter veya metin ile degistirmek için kullanilir.
var eskiMetin = "Kullanici Yazilim Mutfagina Hosgeldin. Kullanici.";
var yeniMetin = eskiMetin.replace("Kullanici", "Ziyaretçi");
document.write("Eski Metin = " + eskiMetin);
document.write("<br />Yeni Metin = " + yeniMetin);
sonuç olarak asagidaki ekran döner:
Eski Metin = Kullanici Yazilim Mutfagina Hosgeldin. Kullanici.
Yeni Metin = Ziyaretçi Yazilim Mutfagina Hosgeldin. Kullanici.
Dikkat ederseniz degistirmek istedigimiz kisim sadece ilk geçtigi yerde degistirilmis fakat sonraki geçtigi yerlerde degistirilmemistir. Eger metin içinde belirledigimiz karakter veya metnin hepsini yeni bir degerle degistirmek istiyorsak regular expression kullanmamiz gerekir.
Bu durumda degistirmek istedigimiz metni “ isareti arasina degil / karakteri arasina yazmamiz gerekiyor.
var eskiMetin = "Kullanici Yazilim Mutfagina Hosgeldin. Kullanici.";
var yeniMetin = eskiMetin.replace(/Kullanici/g, "Ziyaretçi");
document.write("Eski Metin = " + eskiMetin);
document.write("<br />Yeni Metin = " + yeniMetin);
sonuç olarak metin içinde geçen tüm ‘Kullanici’ lar Ziyaretçi olarak degistirildi. Yukaridaki script sonucunda asagidaki görüntü döner:
Eski Metin = Kullanici Yazilim Mutfagina Hosgeldin. Kullanici.
Yeni Metin = Ziyaretçi Yazilim Mutfagina Hosgeldin. Ziyaretçi.
eyw
bir dongu ycynde Index of ile ystedygyn karakteri bulursun, buldukca o karakteryn indexi +1 den baslayarakyenyden yndexof yle bulursun, kaç kez bulursan onuda byr degyskende tutarsyn.
yada cok daha basitit. kelimeyi split ile bölersin, splite parametre olarak istedi?in karakteri verirsin.
split ile bu i?lemi nasl yapacagyny su makaleden ogrenebilirsin.
http://www.yazilimmutfagi.com/10167/web/javascript/javascript-ile-cumledeki-kelime-sayisi-nasil-bulunur.aspx
Merhaba . Kullanycy tarafyndan gyrylen bir kelymenyn ycynde kac tane ‘x’ harfynyn oldugunu bulmak ystyyorum nasyl yapabylyrym acaba ? yardymcy olurmusunuz ?
mskunt 2013-01-05 15:36:05
split fonksiyonunu dosyadan birseyler okuyarak kelime haline getirebilir miyiz
örnegin ;
ahmet eve gelirken
a[0]=ahmet
a[1]=eve
a[2]=gelirken; gibi
Çok güzel olmus, gerekli notlari aldim.tesekkür ederim.