Tienes dos posibilidades:
Expresión regular :
(new RegExp('word')).test(str)
// or
/word/.test(str)
indexOf
:
str.indexOf('word') !== -1
Las expresiones regulares parecen ser más rápidas (al menos en Chrome 10).
Prueba de rendimiento: pajar corto
Prueba de rendimiento: pajar largo
Actualización 2011:
No se puede decir con certeza qué método es más rápido. Las diferencias entre los navegadores son enormes. Mientras que en Chrome 10 indexOf
parece ser más rápido, en Safari 5, indexOf
es claramente más lento que cualquier otro método.
Tienes que ver y probar por ti mismo. Depende de tus necesidades. Por ejemplo, una búsqueda que no distingue entre mayúsculas y minúsculas es mucho más rápida con expresiones regulares.
Actualización 2018:
Solo para evitar que las personas ejecuten las pruebas ellos mismos, estos son los resultados actuales para los navegadores más comunes, los porcentajes indican un aumento en el rendimiento sobre el siguiente resultado más rápido (que varía entre navegadores):
Chrome: indexOf (~ 98% más rápido) <-- wow
Firefox: RegExp en caché (~ 18% más rápido)
IE11: RegExp en caché (~ 10% más rápido)
Edge: indexOf (~ 18% más rápido)
Safari: RegExp en caché (~ 0.4% más rápido)
Tenga en cuenta que RegExp en caché es: var r = new RegExp('simple'); var c = r.test(str);
en lugar de:/simple/.test(str)
regex
etiqueta)?