Anda memiliki dua kemungkinan:
Ekspresi reguler :
(new RegExp('word')).test(str)
// or
/word/.test(str)
indexOf
:
str.indexOf('word') !== -1
Ekspresi reguler tampaknya lebih cepat (setidaknya di Chrome 10).
Uji kinerja - tumpukan jerami pendek
Uji kinerja - tumpukan jerami panjang
Pembaruan 2011:
Tidak bisa dikatakan dengan pasti metode mana yang lebih cepat. Perbedaan antara browser sangat besar. Sementara di Chrome 10 indexOf
tampaknya lebih cepat, di Safari 5, indexOf
jelas lebih lambat daripada metode lainnya.
Anda harus melihat dan mencoba sendiri. Semua tergantung dari kebutuhan Anda. Misalnya pencarian case-insensitive jauh lebih cepat dengan ekspresi reguler.
Pembaruan 2018:
Hanya untuk menyelamatkan orang dari menjalankan tes itu sendiri, berikut adalah hasil saat ini untuk browser yang paling umum, persentase menunjukkan peningkatan kinerja dibandingkan hasil tercepat berikutnya (yang bervariasi antara browser):
Chrome: indexOf (~ 98% lebih cepat) <-- wow
Firefox: cached RegExp (~ 18% lebih cepat)
IE11: cached RegExp (~ 10% lebih cepat)
Edge: indexOf (~ 18% lebih cepat)
Safari: cached RegExp (~ 0,4% lebih cepat)
Perhatikan bahwa RegExp yang di- cache adalah: var r = new RegExp('simple'); var c = r.test(str);
sebagai lawan dari:/simple/.test(str)
regex
tag)?