| 
	
		
 как выделять последовательности искомых подстрок? 
		
		
		
		Подскажите, как выделять последовательности искомых подстрок? 
	Исходная строка: <br><input type="text" id="text" placeholder="Введите текст..."><br/><br/> Искомые совпадения: <br><input type="text" name="search" id="search" placeholder="Введите текст..."> <p id="result"></p> 
search.oninput = function() {
   //подскажите, как это можно сделать
   }
 | 
	
		
 поиск последовательности слов 
		
		
		
		Adrikks, 
	при условии отсутствия служебных символов, иначе нужно добавить экранирование. 
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
    label{
        display: flex;
        flex-direction: column;
    }
    #result b{
        color: #FF0000;
    }
  </style>
</head>
<body>
<label>Исходная строка: <input type="text" id="text" placeholder="Введите текст..." value="ЗАКИРОВ АМИРЗЯН ГАЗИЗЬЯНОВИЧ"></label>
<label>Искомые совпадения: <input type="text" name="search" id="search" placeholder="Введите текст..." value="з а г"></label>
<p id="result"></p>
<script>
search.addEventListener('input', _=>{
    let txt = text.value, patern = search.value.trim();
    if(txt && patern) {
    let ar = patern.split(/\s+/);
    let reg = ar.map(_=> `(^|\\s+)(${_})(\\S*)`);
    patern = new RegExp(reg.join(''), 'i');
    txt = txt.replace(patern, a => ar.reduce((a,_, i) => {
    patern = new RegExp(reg[i], 'i');
    return a.replace(patern, '$1<b>$2</b>$3')
    }, a)
    )
    };
    result.innerHTML = txt;
})
//для теста
let event = new Event("input");
    search.dispatchEvent(event);
</script>
</body>
</html>
 | 
	
		
 рони, 
	а как совместить, чтобы не только с начала строки искались последовательности, а допустим в исходной строке будет "спасибо" и при искомой "си" выделило бы их в результирующей строчке?  | 
	
		
 Цитата: 
	
 Цитата: 
	
 примеры что на входе, что на выходе.  | 
	
		
 рони, 
	Понимаю. Попробую уточнить.  | 
	
		
 Adrikks, 
	пишите текстом, а не картинкой. :)  | 
	
		
 Adrikks, 
	
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
    label{
        display: flex;
        flex-direction: column;
    }
    #result b{
        color: #FF0000;
    }
  </style>
</head>
<body>
<label>Исходная строка: <input type="text" id="text" placeholder="Введите текст..." value="спасибо ЗАКИРОВ АМИРЗЯН ГАЗИЗЬЯНОВИЧ главный врач главный врач"></label>
<label>Искомые совпадения: <input type="text" name="search" id="search" placeholder="Введите текст..." value="си з мир г"></label>
<p id="result"></p>
<script>
search.addEventListener('input', _=>{
    let txt = text.value, patern = search.value.trim();
    if(txt && patern) {
    let ar = patern.split(/\s+/);
    let reg = ar.map(_=> `(^\\S*|\\s+\\S*)(${_})(\\S*)`);
    patern = new RegExp(reg.join(''), 'ig');
    txt = txt.replace(patern, a => ar.reduce((a,_, i) => {
    patern = new RegExp(reg[i], 'i');
    return a.replace(patern, '$1<b>$2</b>$3')
    }, a)
    )
    };
    result.innerHTML = txt;
})
let event = new Event("input");
    search.dispatchEvent(event);
</script>
</body>
</html>
 | 
	
		
 рони, 
	Вот не знаю как правильно объяснить, как именно должно работать) Поэтому показываю на примере картинки, каким должен быть результат)  | 
	
		
 Adrikks, 
	пример выше, смотрите.  | 
	
		
 рони, 
	Да, думаю это именно то, что мне нужно было) Спасибо за ваше время :)  | 
| Часовой пояс GMT +3, время: 11:36. | 
		
  |