Будучи довольно новым для JavaScript, я не могу понять, когда использовать каждый из них.
Кто-нибудь может помочь уточнить это для меня?
javascript
string
Колин Брок
источник
источник
search
оценит строку в регулярное выражение, даже если вы не хотите."hello.".search(".")
- он возвращает 0, а не 5, потому что.
это токен регулярного выражения для «любого символа»indexOf
для простых подстрок,search
для регулярных выражений.источник
Функция поиска ( одно описание здесь ) принимает регулярное выражение, которое позволяет вам сравнивать с более сложными шаблонами, нечувствительными к регистру строками и т. Д., В то время как indexOf ( одно описание здесь ) просто совпадает с литеральной строкой. Однако indexOf также позволяет указывать начальный индекс.
источник
Я думаю, что главное отличие состоит в том, что поиск принимает регулярные выражения.
Проверьте эту ссылку:
источник
IndexOf () - он принимает строковые литералы или строковые объекты, но не регулярные выражения. Он также принимает целочисленное значение, начинающееся с нуля, с которого начинается поиск, например:
Search () - принимает как строковые литералы или строковые объекты, так и регулярные выражения. Но он не принимает индекс, с которого начинается поиск.
источник
"baby/e/lephant".indexOf(m);
?indexOf () и search ()
общий в обоих
я) вернуть первое вхождение искомого значения
ii) вернуть -1, если совпадений не найдено
специальный в indexOf ()
я) вы можете дать начальную позицию поиска в качестве второго аргумента
значение поиска может быть регулярным выражением
ссылка
источник
Поиск находит совпадения с регулярным выражением, но не имеет смещений. IndexOf использует литералы для сопоставления, но имеет смещение.
Индекс
Поиск
источник
Без регулярного выражения нет никакой практической разницы между indexOf и поиском .
Пример ниже дает живую демонстрацию :
источник
search
преобразует строку в aRegExp
, поэтому, например,str.search("d........e");
также будет соответствовать символу 39.