BİLGİ SAYAMIYORUM beta

Javascript ile bir yazının (string) başka bir yazıyı/kelimeyi (substring) içerip içermediğine nasıl bakılır?

0

Başka dillerde de bunu incelemiştim zira her dilde sık sık ihtiyaç duyabileceğiniz bir konu olduğu için özellikle başlarda farklı farklı versiyonlarını bilmenizin yararlı olacağını düşünüyorum. Bunu yapmanın en genel ve muhtemelen en hızlı yolu indexOf ile bulunduğu yeri söyle demek, mesela hikaye adlı bir yazımız var ve içinde "Beren" kelimesinin geçip geçmediğine bakmak istiyoruz:

     var hikaye = "Gecelerini Beren'i arayarak geçirdi Lúthien.";
     var aranacak = "Beren";
     if (hikaye.indexOf(aranacak) !== -1) { bisiYap(); }

Eğer hikaye içinde aranacak yazı var ise bisiYap fonksiyonu çalışır çünkü if içerisindeki sorgu -1 den fazla gelmektedir zira bu aranacak kelimenin hikaye içerisindeki yerini döndürmektedir. Sadece aşağıdaki satırı kullanırsanız da sadece true ya da false değer alırsınız:

     ~hikaye.indexOf(aranacak)

Büyüklük, küçüklüğün farklılığını ortadan kaldırmak için tabii ki şöyle bir şey yapabilirsiniz:

     hikaye.toLowerCase().indexOf(aranacak.toLowerCase());

Regular Expression yöntemiyle de test ederek bu işlemi yapabilirsiniz, tabii ki değerleri ters yerlere koymalısınız:

     var hikaye = "Gecelerini Beren'i arayarak geçirdi Lúthien.";
     var aranacak = /Beren/;
     aranacak.test(hikaye);

Diğer arama yöntemleri:

     hikaye.search(aranacak);
     hikaye.match(aranacak);

EcmaScript6 ile eklenen includes fonksiyonunu da şu şekilde kullanabilirsiniz, tabii eski tarayıcılar için kodunuza "require('es6-shim')" gibi birşey eklemelisiniz:

     hikaye.includes(aranacak);

BENZER 7

Kimse etkileşime girmemiş

ETİKETLER