Você tem duas possibilidades:
Expressão regular :
(new RegExp('word')).test(str)
// or
/word/.test(str)
indexOf
:
str.indexOf('word') !== -1
Expressões regulares parecem ser mais rápidas (pelo menos no Chrome 10).
Teste de desempenho - palheiro curto
Teste de desempenho - palheiro longo
Atualização de 2011:
Não se pode dizer com certeza qual método é mais rápido. As diferenças entre os navegadores são enormes. Enquanto no Chrome 10 indexOf
parece ser mais rápido, no Safari 5, indexOf
é claramente mais lento que qualquer outro método.
Você tem que ver e tentar por si mesmo. Isso depende de suas necessidades. Por exemplo, uma pesquisa que não diferencia maiúsculas de minúsculas é muito mais rápida com expressões regulares.
Atualização 2018:
Apenas para evitar que as pessoas executem os testes, aqui estão os resultados atuais dos navegadores mais comuns, as porcentagens indicam um aumento de desempenho em relação ao próximo resultado mais rápido (que varia entre os navegadores):
Chrome: indexOf (~ 98% mais rápido) <-- wow
Firefox: RegExp em cache (~ 18% mais rápido)
IE11: RegExp em cache (~ 10% mais rápido)
Edge: indexOf (~ 18% mais rápido)
Safari: RegExp em cache (~ 0.4% mais rápido)
Observe que o RegExp em cache é: var r = new RegExp('simple'); var c = r.test(str);
ao contrário de:/simple/.test(str)
regex
tag)?