Поиск подстрок без учёта регистра

526
29 декабря 2016, 08:57

Задача следующая:

Имеется входной текст, например: Тест ,слово. Тест.Слово,тест, слово..

Требуется найти внутри текста слова, например: Тест и помечать их каким-либо html тегом. На выходе я должен получить текст с помеченными словами тест без учёта регистра. Выходная строка должна выглядеть примерно так: <string>Тест</string> ,слово. <string>Тест</string>.Слово,<string>тест</string>, слово..

Есть идея приводить текст к lowerCase или upperCase, и искать для каждого слова позиции в тексте (indexOf) плюс длину слова и оборачивать эти символы в html тег, но мне кажется это костыльными вариантом и нет уверенности что это сработает.

Answer 1

можно использовать регулярные выражения. В качестве параметров передав g - поиск по всей строке (глобально) и i - не учитывать регистр. Затем, с помощью replace заменить всё, что выбралось регуляркой на нужную конструкцию.

var string = "Тест ,слово. Тест.Слово,тест, слово."; 
var reg = new RegExp('тест', 'gi'); 
 
var result = string.replace(reg, function(str) { 
  return '<strong>' + str + '</strong>' 
}); 
 
console.log(result);

Answer 2

Используйте регулярные выражения. В строке замены используйте $& для ссылки на сопоставившуюся строку. флаг i указывает на регистронезависимый поиск, флаг g определяет жадность поиска, или поиск по всей строке целиком.

var input = "Тест ,слово. Тест.Слово,тест, слово..";
var output = input.replace(/тест/ig, "<string>$&</string>");
READ ALSO
how to separate click functions [требует правки]

how to separate click functions [требует правки]

how to separate jquery click function td inside

553
Изменение режима horizontal и vertical в Bxslider на Jquery

Изменение режима horizontal и vertical в Bxslider на Jquery

Возможно ли поменять режим bxslider на маленьких размерах экрана с horizontal на vertical c помощью jquery?

485
Ajax возвращает error со всей страницей

Ajax возвращает error со всей страницей

Всем приветТакая проблема: при выводе данных ajax запрос возвращает всю страницу, вместе с ответом

549
click не срабатывает

click не срабатывает

Отображаются звездочки рейтинга пользователя, при наведении курсора содержимое блока с id edit_user_rating меняется на пустые звездочки с class span_ratingПри...

486