0

Найти первый индекс строки после заданного индекса

15

Я столкнулся с проблемой в JavaScript. У меня есть строка: "www.google.com.sdg.jfh.sd". Мне нужно найти первый индекс подстроки ".s", который находится после "sdg".

Я уже получил индекс слова "sdg" следующим образом:

var start_index = str.indexOf("sdg");

Теперь мне необходимо найти индекс ".s", который идет после "sdg". Может ли кто-нибудь помочь с этим? Заранее спасибо!

2 ответ(ов)

1

Во втором параметре контролируется начальная позиция поиска:

String.prototype.indexOf(arg, startPosition);

Таким образом, вы можете сделать следующее:

str.indexOf('s', start_index);

Где start_index — это индекс в строке, с которого начнется поиск символа 's'.

0

Ваша переменная start_index будет содержать индекс первой точки, следующей за искомой подстрокой "sdg". Рассмотрим подробно, как это работает:

  1. str.indexOf(search) находит индекс начала подстроки "sdg" в строке str.
  2. К этому индексу добавляется search.length, чтобы получить индекс, который указывает на конец подстроки "sdg".
  3. Метод str.substring(...) создает новую строку, начиная с символа, следующего за "sdg", и включает в себя оставшуюся часть строки.
  4. Далее вызывается 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, если такая точка не найдена.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь