Чтобы вернуть индексы определенной подстроки в строке JavaScript, вы можете использовать различные методы. Вот несколько часто используемых подходов:
- indexOf: метод
indexOfвозвращает индекс первого вхождения подстроки в строку. Если подстрока не найдена, возвращается -1. Чтобы найти все вхождения, вы можете использовать цикл для перебора строки.
function findIndicesUsingIndexOf(string, substring) {
const indices = [];
let index = string.indexOf(substring);
while (index !== -1) {
indices.push(index);
index = string.indexOf(substring, index + 1);
}
return indices;
}
- RegExp: вы также можете использовать регулярные выражения с методом
exec, чтобы найти все вхождения подстроки. Этот метод возвращает массив с совпадающей подстрокой и ее индексом.
function findIndicesUsingRegExp(string, substring) {
const indices = [];
const regex = new RegExp(substring, 'g');
let match = regex.exec(string);
while (match !== null) {
indices.push(match.index);
match = regex.exec(string);
}
return indices;
}
- разделить и объединить. Другой способ найти индексы — разделить строку, используя подстроку в качестве разделителя, а затем объединить полученный массив с разделителем. Результирующая строка будет содержать дополнительные символы в позициях, где встречается подстрока. Затем вы сможете найти индексы этих дополнительных символов.
function findIndicesUsingSplitJoin(string, substring) {
const indices = [];
const parts = string.split(substring);
let index = 0;
for (let i = 0; i < parts.length - 1; i++) {
index += parts[i].length;
indices.push(index);
index += substring.length;
}
return indices;
}
Это всего лишь несколько методов для возврата индексов подстроки в строке JavaScript. Каждый подход имеет свои преимущества в зависимости от конкретных требований вашего приложения.