JavaScript метод String.prototype.indexOf()

Определение и применение

JavaScript метод indexOf() возвращает позицию первого найденного вхождения указанного значения в строке. Для осуществления поиска последнего найденного вхождения указанного значения в строке вы можете воспользоваться методом lastIndexOf().

Поддержка браузерами

Спецификация: ecma262

Поддерживается во всех основных браузерах с 2015 года.

Показать браузеры
Совместимостьjavascript.builtins.String.indexOf
ВозможностьКомпьютерыМобильные
ChromeEdgeFirefoxOperaSafariChrome AndroidFirefox for AndroidOpera AndroidSafari on iOSSamsung BrowserWebView AndroidWebView on iOS
indexOf✓1✓12✓1✓3✓1✓18✓4✓10.1✓1✓1.0✓4.4✓1

поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31

JavaScript синтаксис

JavaScript
// поиск переданной строки осуществляется с нулевого индекса
string.indexOf( searchValue );

// поиск переданной строки осуществляется с заданного индекса
string.indexOf( searchValue, fromIndex );

Спецификация

ECMAScript: String.prototype.indexOf()

Значения параметров

String: справочные сведения
Параметр Описание
searchValue Строка используемая для поиска. Обязательное значение.
Если в качестве значения передана пустая строка, то возвращается начальная позиция поиска, ограниченная диапазоном от 0 до длины строки.
fromIndex Целое число, которое определяет индекс с которого начинается поиск. Значение по умолчанию 0. Необязательное значение.
Если указано значение меньше нуля, то поиск начинается с начала строки, если значение выходит из допустимого диапазона (fromIndex >= string.length), то метод возвращает -1, но только не в том случае, когда передана пустая строка, в этом случае возвращается длина строки по которой происходит поиск.

Если совпадения нет, возвращается -1. Индекс измеряется в кодовых единицах UTF-16. Искомое значение преобразуется в строку; исходная строка не меняется.

Примеры, попробуйте сами

В примере «Первое вхождение и пустая строка» показан результат вызова метода.

Первое вхождение и пустая строка

Измените исходную строку или аргумент метода и сравните результат после запуска.

index.html
HTML
<!doctype html>
<html lang="ru">
  <head>
    <meta charset="UTF-8" />
    <title>Первое вхождение и пустая строка</title>
  </head>
  <body>
    <p>Результат выполнения выводится в консоль.</p>
  </body>
</html>
main.js
JavaScript
var x = 'stringstring' // инициализируем переменную, содержащую строку

console.log(x.indexOf('')) // возвращаемое значение 0 (поиск пустой строки)
console.log(x.indexOf('s')) // возвращаемое значение 0
console.log(x.indexOf('rin')) // возвращаемое значение 2
console.log(x.indexOf('g')) // возвращаемое значение 5
console.log(x.indexOf('String')) // возвращаемое значение -1

console.log(x.indexOf('ri', -2)) // возвращаемое значение 2
console.log(x.indexOf('ri', 2)) // возвращаемое значение 2
console.log(x.indexOf('ri', 3)) // возвращаемое значение 8
console.log(x.indexOf('ri', 9)) // возвращаемое значение -1
console.log(x.indexOf('', 99)) // возвращаемое значение 12 (длина строки)

console.log('abc'.indexOf('', 2)) // 2