Поиск строк JavaScript

JavaScript метод для поиска строки:

  • String.indexOf()
  • String.lastIndexOf()
  • String.startsWith()
  • String.endsWith()

String.indexOf()

indexOf() метод возвращает указанное текстовое значение в строкепервыйпоявление (позиции) индекса:

Пример

let str = "Please locate where 'locate' occurs!";
str.indexOf("locate")    // возвращает 7

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

JavaScript считает позиции от нуля.

0 является первой позицией в строке, 1 — второй, 2 — третьей ......

String.lastIndexOf()

lastIndexOf() Метод возвращает индекс последнего совпадения указанного текста в строке:

Пример

let str = "Please locate where 'locate' occurs!";
str.lastIndexOf("locate")    // возвращает 21

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

Если текст не найден:indexOf() и lastIndexOf() Все они возвращают -1:

Пример

let str = "Please locate where 'locate' occurs!";
str.lastIndexOf("Bill")    // возвращает -1

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

Эти два метода оба принимают второй параметр в качестве начала поиска:

Пример

let str = "Please locate where 'locate' occurs!";
str.indexOf("locate", 15)    // возвращает 21

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

lastIndexOf() Метод ищет вперед (от конца к началу), что означает: если второй параметр является 15Если указать, то поиск начинается с позиции 15 и продолжается до начала строки.

Пример

let str = "Please locate where 'locate' occurs!";
str.lastIndexOf("locate", 15)    // возвращает 7

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

String.search()

search() Метод ищет указанное значение в строке и возвращает положение совпадения:

Пример

let str = "Please locate where 'locate' occurs!";
str.search("locate")     // возвращает 7

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

Вы заметили?

indexOf() и search() Эти два метода, равны ли они?

Они принимают одни и те же параметры и возвращают одни и те же значения?

Эти два метода не равны. Разница такова:

  • search() Метод не принимает второй параметр начала позиции.
  • indexOf() Метод не принимает мощные значения поиска (регулярные выражения).

Вы узнаете больше о регулярных выражениях в后续 главах.

String.match()

Метод match() ищет совпадения по регулярному выражению в строке и возвращает совпадения в виде объекта Array.

Пример 1

Поиск "ain" в строке:

let text = "The rain in SPAIN stays mainly in the plain";
text.match(/ain/g)    // возвращает массив [ain,ain,ain]

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

Узнайте больше о регулярных выражениях в главе о JS RegExp.

Если регулярное выражение не содержит модификатора g (глобальный поиск), метод match() будет возвращать только первое совпадение в строке.

Синтаксис

string.match(regexp)
regexp Обязателен. Значение для поиска, выраженное регулярным выражением.
Возвращает: Массив, содержащий совпадения, каждый элемент соответствует проекту, если совпадений не найдено, то null.

Пример 2

Выполните глобальный поиск без учета регистра для "ain":

let text = "The rain in SPAIN stays mainly in the plain";
text.match(/ain/gi)   // Возвращает массив [ain, AIN, ain, ain]

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

String.includes()

Если строка содержит указанное значение,includes() Метод возвращает true.

Пример

let text = "Hello world, welcome to the universe.";
text.includes("world")    // Возвращает true

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

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

Internet Explorer не поддерживает String.includes().

Chrome IE Firefox Safari Opera
Chrome 41 Edge 12 Firefox 40 Safari 9 Opera 28
2015 год 3 месяц 2015 год 7 месяц 2015 год 8 месяц 2015 год 10 месяц 2015 год 3 месяц

Синтаксис

string.includes(searchvalue, start)
searchvalue Обязателен. Необходимая строка для поиска.
start Опционально. По умолчанию 0. Начальная позиция поиска.
Возвращает: Если строка содержит это значение, то возвращает trueВ противном случае возвращает false.
Версия JS: ES6 (2015)

Проверка, содержит ли строка "world", начиная с позиции 12:

let text = "Hello world, welcome to the universe.";
text.includes("world", 12)    // Возвращает false

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

String.startsWith()

Если строка начинается с указанного значения, то startsWith() Метод возвращает trueВ противном случае возвращает false:

Пример

let text = "Hello world, welcome to the universe.";
text.startsWith("Hello")   // Возвращает true

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

Синтаксис

string.startsWith(searchvalue, start)

Значение параметра

Параметр Описание
searchvalue Обязателен. Нужное значение для поиска.
start Опционально. По умолчанию 0. Начальная позиция поиска.

Пример

let text = "Hello world, welcome to the universe.";
text.startsWith("world")    // Возвращает false
let text = "Hello world, welcome to the universe.";
text.startsWith("world", 5)    // Возвращает false
let text = "Hello world, welcome to the universe.";
text.startsWith("world", 6)    // Возвращает true

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

Комментарий:startsWith() Метод различает регистр.

Internet Explorer не поддерживает startsWith() Метод.

Первая полная версия браузера, поддерживающая:

Chrome IE Firefox Safari Opera
Chrome 41 Edge 12 Firefox 17 Safari 9 Opera 28
2015 год 3 месяц 2015 год 7 месяц 2015 год 8 месяц 2015 год 10 месяц 2015 год 3 месяц

String.endsWith()

Если строка заканчивается указанным значением, то endsWith() Метод возвращает trueВ противном случае возвращает false:

Пример

Проверка, заканчивается ли строка "Gates":

var text = "Bill Gates";
text.endsWith("Gates")    // Возвращает true

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

Синтаксис

string.endsWith(searchvalue, length)

Значение параметра

Параметр Описание
searchvalue Обязателен. Нужное значение для поиска.
length Опционально. Длина для поиска.

Искать строку, заканчивающуюся "world", с первых 11 символов:

let text = "Hello world, welcome to the universe.";
text.endsWith("world", 11)    // возвращает true

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

Комментарий:endsWith() Метод различает регистр.

Internet Explorer не поддерживает endsWith() Метод.

Первая версия браузера, которая полностью поддерживает этот метод:

Chrome IE Firefox Safari Opera
Chrome 51 Edge 15 Firefox 54 Safari 10 Opera 38
Май 2016 года Апрель 2017 года Июнь 2017 года Сентябрь 2016 года Июнь 2016 года

Полное руководство по строкам

Для полного руководства, пожалуйста, посетите наш Руководство JavaScript String.

Эта книга содержит описание всех свойств и методов строк с примерами.