İki olasılığınız var:
Düzenli ifade :
(new RegExp('word')).test(str)
// or
/word/.test(str)
indexOf
:
str.indexOf('word') !== -1
Normal ifadeler daha hızlı görünüyor (en azından Chrome 10'da).
Performans testi - kısa samanlık
Performans testi - uzun samanlık
2011 Güncellemesi:
Hangi yöntemin daha hızlı olduğu kesin olarak söylenemez. Tarayıcılar arasındaki farklar çok büyük. Chrome 10'da indexOf
daha hızlı görünmekle birlikte, Safari 5'te indexOf
diğer yöntemlerden açıkça daha yavaştır.
Kendini görmek ve denemek zorundasın. Bu sizin ihtiyaçlarınıza bağlıdır. Örneğin, büyük / küçük harf duyarsız bir arama, normal ifadelerle çok daha hızlıdır.
Güncelleme 2018:
İnsanları testleri kendileri yapmaktan kurtarmak için, en yaygın tarayıcılar için mevcut sonuçlar şunlardır, yüzdeler bir sonraki en hızlı sonuçta (tarayıcılar arasında değişen) performans artışını gösterir:
Chrome: indexOf (~% 98 daha hızlı) <-- wow
Firefox: önbelleğe alınmış RegExp (~% 18 daha hızlı)
IE11: önbelleğe alınmış RegExp (~% 10 daha hızlı)
Kenar: indexOf (~% 18 daha hızlı)
Safari: önbelleğe alınmış RegExp (~% 0,4 daha hızlı)
Not RegExp önbelleğe geçerli: var r = new RegExp('simple'); var c = r.test(str);
aksine:/simple/.test(str)
regex
etiketin kullanımıyla biraz kafam karıştı )?