У вас есть две возможности:
Регулярное выражение :
(new RegExp('word')).test(str)
// or
/word/.test(str)
indexOf
:
str.indexOf('word') !== -1
Регулярные выражения кажутся быстрее (по крайней мере, в Chrome 10).
Тест производительности - длинный стог сена
Тест производительности - длинный стог сена
Обновление 2011:
Нельзя с уверенностью сказать, какой метод быстрее. Различия между браузерами огромны. Хотя в Chrome 10 indexOf
кажется быстрее, в Safari 5 indexOf
явно медленнее, чем любой другой метод.
Вы должны увидеть и попробовать себя. Это зависит от ваших потребностей. Например, поиск без учета регистра намного быстрее с регулярными выражениями.
Обновление 2018:
Просто для того, чтобы избавить людей от запуска самих тестов, вот текущие результаты для большинства распространенных браузеров, проценты указывают на увеличение производительности по сравнению со следующим самым быстрым результатом (который зависит от браузера):
Chrome: indexOf (~ 98% быстрее) <-- wow
Firefox: кэшированный RegExp (~ 18% быстрее)
IE11: кэшированный RegExp (~ 10% быстрее)
Edge: indexOf (~ 18% быстрее)
Safari: кэшированный RegExp (~ 0,4% быстрее)
Обратите внимание, что кэшированный RegExp это: var r = new RegExp('simple'); var c = r.test(str);
в отличие от:/simple/.test(str)
regex
тега)?