This page was translated from English by the community.Learn more and join the MDN Web Docs community.
String.prototype.indexOf()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
Сводка
МетодindexOf() возвращает индекс первого вхождения указанного значения в строковый объектString, на котором он был вызван, начиная с индексаfromIndex. Возвращает -1, если значение не найдено.
In this article
Интерактивный пример
const paragraph = "I think Ruth's dog is cuter than your dog!";const searchTerm = "dog";const indexOfFirst = paragraph.indexOf(searchTerm);console.log(`The index of the first "${searchTerm}" is ${indexOfFirst}`);// Expected output: "The index of the first "dog" is 15"console.log( `The index of the second "${searchTerm}" is ${paragraph.indexOf( searchTerm, indexOfFirst + 1, )}`,);// Expected output: "The index of the second "dog" is 38"Синтаксис
indexOf(searchString)indexOf(searchString, position)Параметры
searchValueСтрока, представляющая искомое значение.
fromIndexНеобязательный параметр. Местоположение внутри строки, откуда начинать поиск. Может быть любым целым числом. Значение по умолчанию установлено в 0. Если
fromIndex < 0, поиск ведётся по всей строке (так же, как если бы был передан 0). ЕслиfromIndex >= str.length, метод вернёт -1, но только в том случае, еслиsearchValueне равен пустой строке, в этом случае он вернётstr.length.
Описание
Символы в строке идут слева направо. Индекс первого символа равен 0, а последнего символа в строкеstringName равенstringName.length - 1.
"Синий кит".indexOf("Синий"); // вернёт 0"Синий кит".indexOf("Голубой"); // вернёт -1"Синий кит".indexOf("кит", 0); // вернёт 6"Синий кит".indexOf("кит", 5); // вернёт 6"Синий кит".indexOf("", 8); // вернёт 8"Синий кит".indexOf("", 9); // вернёт 9"Синий кит".indexOf("", 10); // вернёт 9Регистрозависимость
МетодindexOf() является регистрозависимым. Например, следующее выражение вернёт -1:
"Синий кит".indexOf("синий"); // вернёт -1Проверка на вхождение
Обратите внимание, что значение 0 не вычисляется вtrue, а значение -1 не вычисляется вfalse. Поэтому, для проверки того, что конкретная строка содержится в другой строке, правильно делать так:
"Синий кит".indexOf("Синий") !== -1; // true"Синий кит".indexOf("Голубой") !== -1; // falseПримеры
>Пример: использование методовindexOf() иlastIndexOf()
В следующем примере используются методыindexOf() иlastIndexOf() для нахождения значений в строке"Дивный новый мир".
var anyString = "Дивный новый мир";console.log( "Индекс первого вхождения «й» с начала строки равен " + anyString.indexOf("й"),);// Отобразит 5console.log( "Индекс первого вхождения «й» с конца строки равен " + anyString.lastIndexOf("й"),);// Отобразит 11console.log( "Индекс вхождения «новый» с начала строки равен " + anyString.indexOf("новый"),);// Отобразит 7console.log( "Индекс вхождения «новый» с конца строки равен " + anyString.lastIndexOf("новый"),);// Отобразит 7Пример: методindexOf() и регистрозависимость
В следующем примере определяются две строковых переменных. Переменные содержат одинаковые строки, за исключение того, что слова во второй строке начинаются с заглавных букв. Первый вызов методаconsole.log() отобразит 18. Но поскольку методindexOf() является регистрозависимым, строка"чеддер" в переменнойmyCapString не будет найдена, так что второй вызов методаconsole.log() отобразит -1.
var myString = "бри, пеппер джек, чеддер";var myCapString = "Бри, Пеппер Джек, Чеддер";console.log( 'Вызов myString.indexOf("чеддер") вернул ' + myString.indexOf("чеддер"),);// Отобразит 18console.log( 'Вызов myCapString.indexOf("чеддер") вернул ' + myCapString.indexOf("чеддер"),);// Отобразит -1Пример: использование методаindexOf() для подсчёта вхождений буквы в строку
Следующий пример устанавливает значение переменнойcount в количество вхождений буквыв в строкуstr:
var str = "Быть или не быть, вот в чём вопрос.";var count = 0;var pos = str.indexOf("в");while (pos !== -1) { count++; pos = str.indexOf("в", pos + 1);}console.log(count); // отобразит 3Спецификации
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-string.prototype.indexof> |