JavaScript String Metodları: includes() & search()
includes() Metodu
includes: string ifade içerisinde, istenilen başka bir string ifadenin olup olmadığını sorgular. İfade varsa: true, yoksa: false değerini döner. Metin içersinde arama yapma, form doğrulama, veri filtreleme ve url analizi vb. verileri analiz etmek için kullanılır.
let metin = "Merhaba, YapayGezegen.com sitesindesiniz."
let aramaMetni = ".com"
metin.includes(aramaMetni) // true -> .com ifadesinin olup olmadığını kontrol ettik
metin.includes("Java") // false -> Java ifadesi metin içersinde olmadığı için false değeri döndü
includes metodu: büyük - küçük harflere duyarlıdır. Metod, 2 parametre almaktadır. 2. parametre: aramaya başlanacak index değerini belirler. Kullanımı zorunlu değildir. Varsayılan olarak 0 değerini kullanır.
metin.includes(".Com") // false -> c ve C iki farklı karakterdir. Birbirine eşit değildir.
metin.includes(aramaMetni,21) // true -> .com ifadesi 21. karakterden sonra mevcuttur
metin.includes(aramaMetni,22) // false -> .com ifadesi 22. karakterden sonra mevcut değildir
includes metodunu kendimiz yazmaya çalışalım. Bunu: bir for döngüsü, slice metodu ve bir if sorgusu ile yapabiliriz.
function olmak(veri, ifade) {
for (let i = 0; i <= veri.length - ifade.length; i++) {
if (veri.slice(i, i + ifade.length) == ifade) {
return true
}
}
return false
}
let metin = "includes metodu"
let deger1 = "abc"
let deger2 = "ude"
olmak(metin,deger1) // false
olmak(metin,deger2) // true
search() Metodu
search: string ifade içerisinde, istenilen başka bir string ifadenin olup olmadığını sorgular. İfade varsa: bulunduğu ilk index değerini döner, yoksa: -1 değerini döner. Büyük - küçük harflere duyarlıdır. String ifade içerinde arama yapmak için kullanılır.
let metin = "Veri Yapıları ve Algoritmalar"
metin.search("Ve") // 0
metin.search("ve") // 14
metin.search("as") // -1
includes metodu için yazdığımız fonksiyonu değiştirerek, döndürdüğü değerleri: index ve -1 yapıp, search metoduna uyarlayalım.
function arama(veri, ifade) {
for (let i = 0; i <= veri.length - ifade.length; i++) {
if (veri.slice(i, i + ifade.length) == ifade) {
return i
}
}
return -1
}
let metin = "Veri Yapıları ve Algoritmalar"
arama(metin,"Ve") // 0
arama(metin,"ve") // 14
arama(metin,"as") // -1