Я работаю над методом, чтобы выделить текст запроса, найденный в строке, идея состоит в том, чтобы добавить жирный маркер к каждому найденному вхождению. проблема в том, что когда я пытаюсь заменить все вхождения текста запроса на g, и я отмечаю, что он этого не делает, похоже, он игнорирует флаг i.
это функция:
highlight = function(text,q){
if (text.indexOf(q) != -1) {
text = text.replace(new RegExp("\\b".concat(q, "\\b"), 'gi'), '<b>' + q + '</b>');
} else{
q = q.split(' ');
q.forEach(function (item) {
if (text.indexOf(item) != -1) text = text.replace(new RegExp("\\b".concat(item, "\\b"), 'gi'), '<b>' + item + '</b>');
});
}
return text;
}
не стесняйтесь проверить его, ниже приведен пример буксировки, с которым я тестировал:
highlight(' is THIS this','this') => is <b>this</b> <b>this</b>
. это работает!
highlight(' is THIS','this') => is THIS
. Нет