UNPKG

surt

Version:

Smart suggest widget

26 lines (19 loc) 1.9 kB
рестораны wifi 123рестораны wifi гантеля . Пусть text - результат выполнения функции text() на инпуте . Пусть kit - рассматриваемый кит сагеста, в котором нужно обернуть совпадающую часть . Пусть kitText - результат применения функции text() к kit . Пусть offset - номер символа, с которого начинается первое вхождение подстроки . Если offset не существует - ничего не делаем . Иначе, делаем цикл по токенам kit . Пусть kitOffset - номер первого символа текущего токена в строке kitText . Если kitOffset + token.length меньше offset, то в текущем ките ничего не делаем. То есть, если выделяемая подстрока начинается с какого-то следующего токена. . Иначе, . Находим правую границу выделения в текущем токене, как Math.max() от правой границы самого токена и от offset + text.length . Оборачиваем выделенную часть в span . Удаляем первое вхождение выделенной части текста токена из text Проблемы 1. Оборачивание разделителей. 2. Куча лишнего html Пока останавливаемся на варианте оборачивания text внутри каждого токена. Как вариант - не разделять токены внутри китов сагеста дивами, тогда все проще.