Как вернуть найденную подстроку в строке?
В цикле перебираются элементы, из них при помощи textContent вытягивает содержимое, а мне нужно в этой строке найти подстроку и вернуть её, чтобы можно было слепить новую строку. Сейчас часть кода выглядит так, но работает не так как нужно:
option.forEach(element => { const text = element.textContent.replace(/\s+/g, ' ').trim() // убираем лишние пробелы const regexp = new RegExp(`${event.detail.value}`, 'i') const rez = text.replace(regexp, `<span class="-underline">${event.detail.value}</span>`) element.childNodes[0].remove() // удаляем текстовую ноду element.insertAdjacentHTML("afterbegin", rez) // вставляем span с текстом }) В event.detail.value находится искомая подстрока, мне в element.textContent нужно найти event.detail.value, но вернуть то, что нашлось. Использовать event.detail.value нельзя, т.к. оригинальная строка может быть "Тест", а юзер будет вводить "тЕст", в итоге получится новая строка, а должен сохраниться оригинал, т.е. "Тест", поэтому я хочу вытащить искомую подстроку в строке. Как это можно сделать? |
CryNet,
не осилил. |
Цитата:
Есть массив со строками: const string = ["ТЕСТ","Строка", "String"] Есть поле поиска, в который юзер что-то пишет, чтобы найти нужную эму строку из string, допустим на JS это выглядит так: const search = "тЕ" // юзер ввёл "тЕ" Мне нужно перебрать string и найти там элементы массива, которые содержат search. Я бы мог восспользоваться методом include(), но он вернёт true|false, а я хочу вернуть кусок этой строки - модифицировать её - сохранить в этом же массиве. Массив должен выглядеть так: const string = ["<span class="-underline">ТЕ</span>СТ","Строка", "String"] Медотом replace() я тоже восспользоваться не могу, а то получиться такое: const string = ["<span class="-underline">тЕ</span>СТ","Строка", "String"] То как вернуть часть строки, если она нашлась? |
const rez = text.replace(regexp, (str, p1) => `<span class="-underline">${p1}</span>`) |
Цитата:
const rez = text.replace(regexp, (str, p1) => `<span class="-underline">${str}</span>`) |
Часовой пояс GMT +3, время: 18:25. |