Поиск строк JavaScript
- Предыдущая страница JS методы строк
- Следующая страница JS шаблоны строк
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.
Эта книга содержит описание всех свойств и методов строк с примерами.
- Предыдущая страница JS методы строк
- Следующая страница JS шаблоны строк