Найти первый индекс строки после заданного индекса
Я столкнулся с проблемой в JavaScript. У меня есть строка: "www.google.com.sdg.jfh.sd". Мне нужно найти первый индекс подстроки ".s", который находится после "sdg".
Я уже получил индекс слова "sdg" следующим образом:
var start_index = str.indexOf("sdg");
Теперь мне необходимо найти индекс ".s", который идет после "sdg". Может ли кто-нибудь помочь с этим? Заранее спасибо!
2 ответ(ов)
Во втором параметре контролируется начальная позиция поиска:
String.prototype.indexOf(arg, startPosition);
Таким образом, вы можете сделать следующее:
str.indexOf('s', start_index);
Где start_index
— это индекс в строке, с которого начнется поиск символа 's'
.
Ваша переменная start_index
будет содержать индекс первой точки, следующей за искомой подстрокой "sdg"
. Рассмотрим подробно, как это работает:
str.indexOf(search)
находит индекс начала подстроки"sdg"
в строкеstr
.- К этому индексу добавляется
search.length
, чтобы получить индекс, который указывает на конец подстроки"sdg"
. - Метод
str.substring(...)
создает новую строку, начиная с символа, следующего за"sdg"
, и включает в себя оставшуюся часть строки. - Далее вызывается
indexOf(".s")
, чтобы найти индекс первой подстроки".s"
в полученной строке.
По факту, start_index
будет равен -1
, если подстрока ".s"
не найдена после "sdg"
. Если вы хотите получить индекс в исходной строке str
, вам нужно будет прибавить к start_index
индекс, где начинается последняя подстрока до вызова substring
.
Вот пример того, как это можно сделать:
var str = "www.google.com.sdg.jfh.sd";
var search = "sdg";
var start_index = str.indexOf(search) + search.length; // индекс после 'sdg'
var dot_s_index = str.substring(start_index).indexOf(".s"); // индекс '.s' после 'sdg'
if (dot_s_index !== -1) {
dot_s_index += start_index; // если '.s' найдено, возвращаем индекс от начала строки
} else {
dot_s_index = -1; // если '.s' не найдено
}
console.log(dot_s_index);
Таким образом, переменная dot_s_index
будет содержать индекс первой точки, следующей за "sdg"
, или -1
, если такая точка не найдена.
Где найти документацию по форматированию даты в JavaScript?
Как определить нажатие клавиши Esc?
Как проверить, содержит ли массив строку в TypeScript?
Ссылка и выполнение внешнего JavaScript-файла, размещенного на GitHub
Как остановить Babel от трансформации 'this' в 'undefined' и добавления "use strict"