JavaScript Nedir?
Yazım Kuralları
Değişkenler
İşlemler
Akış Denetimi
Döngü Denetimi
Diziler
Fonksiyonlar
Pencere Komutları
Metin Komutları
Zaman Komutları
Matematik Komutları
Tarayıcı Komutları
Olay
Nesneler
Javascript ve DHTML
Örnek Uygulamalar

METİN (STRING) KOMUTLARI

String Nesnesi


Javascript bir alfanümerik değişkeni ele aldığı anda bu onun için bir String nesnesi olur; ve dolayısıyla, bir değişkenden öte bazı özellikler ve metodlar kazanır. Dizi-değişkenler de oluşturuldukları anda Array nesnesi olurlar; yeni özellikleri ve metodları olur.

Javascript kodunuzun ya HTML’in HEAD bölümünde genel nitelikli, ya da herhangi bir fonksiyonun içinde yerel nitelikli bir değişken tanımladığınız zaman bu türüne göre bir String (alfanümerik, karakter) değişken olur. Örneğin:

var kitabınAdi = “Gazap Üzümleri”

ifadesi bize içeriği “Gazap Üzümleri” olan bir değişken kazandırır. İçeriğinin niteliği nedeniyle bu değişken, String değişkendir. Fakat şu aşağıdaki ifadeye bakarsanız, Javascript’e yeni bir String nesnesi oluşturması için de emir verebiliriz:

var kitabinAdi = new String(“Gazap Üzümleri”)

“new,” (=yeni) hatırlıyorsanız, Javascript‘e yeni bir nesne oluşturması için verdiğimiz komuttu. Burada Javascript’e yeni bir String nesnesi oluşturmasını; bunun içeriğini “Gazap Üzümleri” yapmasını, ve bu nesneyi, “kitabinAdi” isimli değişkene atamasını söylüyoruz. değişken oluşturma açısından ikisi arasında hiç bir fark olmamakla birlikte, bu ikinci yöntem bize, alfanümerik değişkenlerin özel niteliğini, nesne olduklarını gösteriyor. Bu sayede alfanümerik değişkenlerin (yani String nesnelerinin) bazı ilave özelliklerinden yararlanabiliriz. Bu özelliklerin sık kullanılanlarını şöyle sıralayabiliriz:


. length   
                 

.charAt(i)                

.indexOf(nnn)          

.lastIndexOf(nn)       

.substring(i,j)           

.bold()                   

.fontcolor(“renk”)    

.fontsize(“ölçü”)      

.italics()                 

.toLowerCase()       

.toUpperCase()        

 
charAt(i)
 
Fonksiyonlarda ve diğer tür işlemlerde kullanabileceğimiz bir Javascript kısaltması, “filanca yerdeki karakter” diyebileceğimiz “charAt(i)” ifadesidir. charAt(i) hazır fonksiyonu, herhangi bir karakter kümesinin i. karekterini verir. Örneğin "ali" kelimesinin ilk karakteri "a" dır ve Bunu charAt(0) ile bir değişkene alabiliriz. Kullanımım değişken.charAt(i) şeklindedir.
 


<script language="JavaScript"> 

girilenkelime=prompt("kelimeyi yazın")

karakter=girilenkelime.charAt(0)

document.write("girdiğiniz kelimenin ilk karakteri = " + karakter)

</script>


Burada önce prompt ile kullanıcın girdiği kelime "girilenkelime" isimli değişkene aktarılıyor. Daha sonra girilenkelime.charAt(0) ifadesi ile, bu değişkenin ilk karakteri, "karakter" isimli değişkene aktarılıyor. Son olarak ekranda yazdırılıyor.
 
parseInt(i,n) ve parseFloat(i,n)


Javascript, kendisine alfanümerik olarak verilen bir değişken değerini tamsayı (integer) veya kesirli sayıya (float) çevirebilir. Alfanümerik değerleri tam veya kesirli sayıya çevirmek için, parseInt ve parseFloat ifadelerini kullanırız. (Javascript’in sayı olarak verilen değişkeni alfanümerik değere (string) çevirmesi için kullanılmaya hazır bir metod yoktur; bunun için toplama işlemi içeren bir fonksiyon yazmanız gerekir.)

Her iki metotta da, çevirme işleminin 10 tabanlı (decimal), 8 tabanlı (octal) veya 16 tabanlı (hexadecimal) olmasını istediğinizi, çevrilmesini istediğiniz alfanümerik değerden (veya bu değeri temsil eden değişkenin adından) sonra bir virgül koyarak, 10, 8 veya 16 rakamı ile belirtmeniz gerekir.

parseInt() metodu ile bazı çevirme işlemlerine örnek verirsek,

parseInt (“123456.3333”)


123456 sonucunu verir. Çünkü bu metod kendisine verdiğiniz alfanümerik değerin içinde rakam ile artı ve eksi işaretlerinden başka bir şey gördüğü noktada durur; o noktaya kadar gördüğü unsurları bir tamsayı değişkeni olarak size geri verir.
parseFloat() metoduna da bir örnek verirsek,

parseFloat (“123456.3333”)


123456.3333 sonucunu verir. Çünkü bu metod kendisine verdiğiniz alfanümerik değerin içinde rakam ile artı ve eksi işaretlerinin yanı sıra nokta işaretinden başka bir şey gördüğü noktada durur; o noktaya kadar gördüğü unsurları bir kesirli sayı değişkeni olarak size geri verir.
 

<script language="JavaScript"> 

var a,b

a = "1e";

b = parseInt(a,10)

document.write(b)

</script>

 
Script çalıştığında , ekrana sadece 1 yazılır. Çünkü parseint komutuyla a değişkenin içeiriği10 luk sisteme göre tam sayıya çevriliyor ve komut "e" yi gördüğü anda b değişkenine 1 değerini gönderiyor.
 

<script language="JavaScript"> 

var a,b

a = "1e";

b = parseInt(a,16)

document.write(b)

</script>

 
Script çalıştığında ekranda 30 yazacaktır.Çünkü parseint komutuyla a değişkenin içeiriği16 luk sisteme göre tam sayıya çevriliyor. "e" 16'lık sistemde bir rakam olduğu için komut "1e" sayısını elde ediyor ve ekrana "1e" nin 10luk karşılığı olan "30" sayısını yazdırıyor.
 
length.......(karakter uzunluğu)


length yöntemiyle metinsel bir ifadenin kaç karakterden oluştuğunu bulabiliriz.Boşluklar da karakter ifade eder.

<pre>
<script language="JavaScript">

var metin
metin = prompt("Metinsel bir ifade yazın.")
karsay=metin.length
document.writeln("Yazılan metin: " , metin)
document.write("Karakter sayısı: " , karsay)

</script>
</pre>


Burada prompt ile kullanıcıdan bir metin girmesi isteniyor ve girilen bu metin, metin isimli dğeişkene aktarılıyor. Daha sonra bu metnin uzunluğu metin.length ifadesi ile karsay isimlidğeişkene aktarılıyor ve ekranda yazdırılıyor.
 
indexOf......(karakter arama)


Bir metin kümesi içerisinde herhangi bir ifadeyi aramak için kullanılır.Örneğin "a" değişkenin değeri "Brad Pitt" olsun. Biz "Pitt" metinsel ifadesinin bu metin içinde bulunup bulunmadığını şöyle anlarız : b = a.indexOf("Pitt"). "Pitt" metinsel ifadesi "Brad Pitt" içinde yani a içinde var. Bu durumda b pozitif bir tamsayı değeri alır.Olmasaydı -1 değeri alacaktı.

 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<title>Karakter Bulma</title>

<script language="JavaScript">

function bul()

{

var metin=prompt("Öyle bir şey yazın ki içinde küçük a harfi olmasın.")
var karakter=metin.indexOf ("a")

if (karakter>=0)

{

document.writeln(metin," ifadesinde a harfi var.")
document.write(karakter+1,". sırada")
}

else

{
document.write(metin," ifadesinde a harfi yok.")
}

}
</script>

</head>
<body>

<form>
<input type="button" value="Karakter Arama" onclick="bul()"/>
</form>

</body>
</html>


Burada bul isimli fonksiyonla kullanıcının bir metin girmesi isteniyor ve bu metin isimlideğişken içerisine yazılıyor. Daha sonra metin.indexOf("a") komutuyla , girilen metin içerisinde "a" harfi olup olmadığı kontrol ediliyor ve sonuç karakter isimli değişkene aktarılıyor. IF cümlesiyle karakter isimli dğeişken içerisindeki sayı kontrol ediliyor. Eğer 0 veya 0dan büyükse (bu durumda metnini içerisinde "a" harfi vardır) ekrana metin içerisinde "a" harfinin olduğu, diğer durumlarda ise else (karakter içeriği 0dan küçükse) "a" harfinin olmadığı yadırılıyor. Fonksiyon body etiketleri arasında form butonuna tıklandığında (onclick) çalıştırılıyor.

NOT: Eğer aranan tek harf ise, dönen değer "metin" içerisinde (ilk olarak) kaçıncı sırada olduğudur. Örneğin "program" kelimesi içinde g harfi aratıldğında metin.indexOf("g") komutu "3" değeri verecektir. En soldaki karakter 0. değer olarak döner..

 
lastIndexOf......(karakter arama)
 
indexOf ile aynı işi yapar .Ancak döndürdüğü, aranılan metin içerisindeki en son bulunanın sırasıdır.Örneğin "izmir" kelimesi içerisinde "i" harfini indexof ile aratırsak dönen değer "0" olacaktır. Ancak LastindexOf ile aratırsak bu kez dönen değer "3" olacaktır.Çünkü izmir metni içerisinde son karşışalıan "i" harfi 3.sıradadır.(javaya göre)
 


<script language="JavaScript">


var metin=prompt("Öyle bir şey yazın ki içinde iki tane a harfi olsun.")
var ilkkarakter=metin.indexOf ("a")
var sonkarakter=metin.lastIndexOf ("a")


document.writeln("yazdığınız kelime :",metin)
document.writeln("ilk a harfi ",ilkkarakter+1,". sırada.")
document.write("son a harfi ",sonkarakter+1,". sırada")

</script>

 
match.......(karakter arama)


match
komutu indexOf komutuyla aynı işi yapar. Ancak fark şudur; indexOf ile aranan ifade, metin içerisinde olduğunda bir sayı dönerken, match komutunda aranan ifade döner. Yani karakter=metin.match("a") komutu çalıştığında, eğer metin isimli değişken içerisindeki ifadede "a" harfi varsa, karakter değişkeninin içeriği "a" olacaktır. Eğer yoksa boş yani "null" olacaktır.
 


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<title>Karakter Bulma</title>

<script language="JavaScript">

function bul()

{

var metin = prompt ("Öyle bir şey yazın ki içinde küçük a harfi olmasın.")
var karakter = metin.match ("a")

if (karakter=="a")

{

document.write(metin," ifadesinde a harfi var.")
}

else

{
document.write(metin," ifadesinde a harfi yok.")
}

}
</script>

</head>
<body>

<form>
<input type="button" value="Karakter Arama" onclick="bul()"/>
</form>

</body>
</html>

 
NOT: indexOf ve match komutlarıyla sadece "tek" bir harf değil, uzun bir ifadede aratılabilir.
 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<title>Karakter Bulma</title>

<script language="JavaScript">

function bul()

{

var metin = prompt ("Öyle bir şey yazın ki içinde küçük a harfi olmasın.")
var karakter = metin.match ("asa")

if (karakter=="asa")

{

document.write(metin," ifadesinde asa var. </br>")
document.write(karakter)
}

else

{
document.write(metin," ifadesinde asa yok.")
}

}
</script>

</head>
<body>

<form>
<input type="button" value="Karakter Arama" onclick="bul()"/>
</form>

</body>
</html>

 
 
substr(a,b).......(metin içinden alıntı)
 
substr komutu metinin belli bir bölümünü ifade etmeye yarar. Örneğin metin = "istanbul" şeklindeki metinsel değerlikli bir değişkene kodu şöyle uygularsak: a=metin.substr(3,4), a değişkeninin içeriği "anbu"olur. Buradaki 3 sayısı, alıntı bölümünün metnin 4. harfinden başladığını (ilk harf 0. sırada sayılıyor) ve 4 sayısı alıntının 4 harften oluştuğunu belirtiyor. Yani metin isimli değişken içerisindeki ifadenin 3. harfinden ititbaren ( tabi ilk harf 0 olarak sayıldığı için ifadenin 4. harfine denk gelir) bu harf dahil 4 harfi al demiş oluyoruz.
 

<pre>
<script language="JavaScript">

var metin = prompt ("Herhangi bir kelime yazın")
var karakter = metin.substr(3,3)

document.writeln("girilen kelime :", metin)
document.write("substr(3,3) uygulanmış hali :", karakter)

</script>
</pre>

 
Burada girilen kelimenin 3. harfinden itibaren 3 harflik bölüm alınmış oluyor. Tabi harfler 0'dan başladığı için alıntı bölüm,girilen metnin 4.harfinden itibaren başlıyor.Yani bize göre 1. harf metnin en solundaki veya metnin başladığı harf iken, javascript için bu harf 0. harftir.


NOT: Metin içindeki boşluklarda karakter sayılır. Örneğin "flash cs3" şeklindeki bir metnin 5. karakteri boşluktur.
 
 
toLowerCase......(küçük harfe dönüştürme)
 
Nesnenin içindeki büyük harfleri küçük harfe çevirir.Kullanımı değişken.toLowerCase() şeklindedir.
 


<script language="JavaScript">

var metin = prompt ("büyük harflerden oluşan bir kelime yazın")
var karakter = metin.toLowerCase()

document.writeln("girilen kelime :", metin)
document.write("toLowerCase uygulanmış hali :", karakter)

</script>

 

Burada prompt ile alınan ifade toLowerCase komutuyla tamamen küçük harfe dönüştürülüyor ve ekranda yazılıyor.

 
 
toUpperCase( ) ......(büyük harfe dönüştürme)
 
Nesnenin içindeki küçük harfleri büyük harfe çevirir. Kullanımı değişken.toUpperCase() şeklindedir.
 


<script language="JavaScript">

var metin = prompt ("büyük harflerden oluşan bir kelime yazın")
var karakter = metin.toLowerCase()

document.writeln ("girilen kelime :", metin)
document.write ("toUpperCase uygulanmış hali :", karakter)

</script>

 
Burada prompt ile alınan ifade toUpperCase komutuyla tamamen büyük harfe dönüştürülüyor ve ekranda yazılıyor.
 
bold( ).... (kalınlaştır)
 
Nesnenin içindeki metni kalınlaştırır. .Kullanımı değişken.bold() şeklindedir.
 

<script language="JavaScript">

var metin = prompt ("büyük harflerden oluşan bir kelime yazın")
var karakter = metin.bold()

document.writeln ("girilen kelime :", metin)
document.write ("bold() uygulanmış hali :", karakter)

</script>

 
italics( ).....(italik yap)
 
Nesnenin içindeki metni italik yapar. Kullanımı değişken.italics() şeklindedir.
 


<script language="JavaScript">

var metin = prompt ("büyük harflerden oluşan bir kelime yazın")
var karakter = metin.italics()

document.writeln ("girilen kelime :", metin)
document.write ("italics() uygulanmış hali :", karakter)

</script>

 
fontcolor( )......(yazı rengi)
 
Nesnenin içindeki metnin rengini değiştiri.. Kullanımı değişken.fontcolor("blue") şeklindedir.
 


<script language="JavaScript">

var metin = prompt ("büyük harflerden oluşan bir kelime yazın")
var karakter = metin.fontcolor("red")

document.writeln ("girilen kelime :", metin)
document.write ("fontcolor() uygulanmış hali :", karakter)

</script>

 
fontsize( )......(yazı rengi)
 
Nesnenin içindeki metnin boyutunu değiştirir. Kullanımı değişken.fontsize("34") şeklindedir.
 


<script language="JavaScript">

var metin = prompt ("büyük harflerden oluşan bir kelime yazın")
var karakter = metin.fontsize("23")

document.writeln ("girilen kelime : ", metin)
document.write ("fontsize() uygulanmış hali : ", karakter)

</script>

 
 
toString (stringe dönüştür)
 
Sadece date sınıfına uygulanır ve tanımlanmış bir Date nesnesinin string olarak gösterimini verir.
 


<script language="javascript">

var Tarih = new Date();
alert( Tarih.toString() );

</script>


<script language="javascript">

var Tarih = new Date()
a= Tarih.toString()
alert(a)

</script>

 
Her iki scriptte açılışta uyarı kutusu içerisinde zaman bilgisini gösterecektir.
 
NOT : yukarıdaki tüm özellikler string ifadeyi bir değişkene yönlendirmeden, doğrudan yazarakta uygulanabilir.
 


<pre>
<script language="JavaScript">

alert("Yazılan metin".length)

</script>
</pre>

Yukarıdaki script çalıştığında "Yazılan metin" ifadesinin karakter sayısı (length) ekranda görünecektir. (13)