Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.02.2015, 11:58
Аватар для Momon
Аспирант
Отправить личное сообщение для Momon Посмотреть профиль Найти все сообщения от Momon
 
Регистрация: 02.12.2014
Сообщений: 72

Подскажите пожалуйста способ выделения жирным подстроки?
Строка1: "строка текста"
Строка2: "стр тек"
Нужно получить: "стр<b>ока</b> тек<b>ста</b>"
Ответить с цитированием
  #2 (permalink)  
Старый 01.02.2015, 12:24
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

var str1 = "строка текста";
var str2 = "стр тек";

str2.split(" ").forEach(function (str) {
  str1 = str1.replace(new RegExp("(" + str + ")([^\\s]*)"), "$1<b>$2</b>");
});

alert(str1);

Последний раз редактировалось tsigel, 01.02.2015 в 12:30.
Ответить с цитированием
  #3 (permalink)  
Старый 01.02.2015, 12:26
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от Momon
Строка1: "строка текста"
Строка2: "стр тек"
Нужно получить: "стр<b>ока</b> тек<b>ста</b>"
Как вариант...

var str1='строка текста';
var str2='стр тек';
var a=str2.split(' ');
for (i=0; i<a.length; i++) {
	var re=new RegExp('('+a[i]+')([^\\s]*)');
	str1=str1.replace(re,'$1<b>$2</b>');
};
alert(str1);
Ответить с цитированием
  #4 (permalink)  
Старый 01.02.2015, 14:33
Аватар для Momon
Аспирант
Отправить личное сообщение для Momon Посмотреть профиль Найти все сообщения от Momon
 
Регистрация: 02.12.2014
Сообщений: 72

tsigel,
ksa,

Спасибо за помощь, я так понял вы использовали не пробел [^\\s] для того чтобы найти конец слова. Я привёл некорректный пример. Дело в том, что может быть любой порядок расположения и любое количество слов в str1 и str2 (т.е. там могут быть пробелы и до и после, т.е. [^\\s] не поможет), но все слова в str2 всегда есть в str1 либо как отдельные слова, либо как начала слов.

Если бы нужно было бы наоборот выделить совпадение жирным было бы просто. У меня вот единственная идея задать css class всей строке str1 с жирным начертанием, а у совпадений изменять на class="".

Последний раз редактировалось Momon, 01.02.2015 в 14:37.
Ответить с цитированием
  #5 (permalink)  
Старый 01.02.2015, 14:36
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Momon,
Мне кажется что это хорошая идея и её просто реализовать.
Ответить с цитированием
  #6 (permalink)  
Старый 01.02.2015, 21:06
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от Momon
Я привёл некорректный пример.
Так приведи корректный...
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите пожалуйста как передать массив в функцию serov Элементы интерфейса 3 21.08.2010 19:37
Подскажите пожалуйста, как сделать? BMWSauber Элементы интерфейса 2 27.01.2010 15:50
Подскажите плагин или способ реализации bobri4 jQuery 4 27.11.2009 12:49
подскажите новичку пожалуйста с вставкой в форму marlic Элементы интерфейса 4 02.11.2009 13:48
Выпадающее меню ! Подскажите пожалуйста 123 Общие вопросы Javascript 0 08.01.2009 22:56