Класс RegExp
<head> <meta charset="utf-8"> </head> <body> <input type="text"> <div>Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Свой подзаголовок, эта напоивший текста по всей до одна несколько обеспечивает свой все, рукописи мир то продолжил скатился дал алфавит всеми.</div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script> $('input').keyup(function(){ var inp = new RegExp($(this).val(), 'g'); var str = $('div').text().replace(inp, '<span style="color:red">'+inp+'</span>'); $('div').html(str); }); </script> </body> Как поправить? чтоб спец символы не вылазили. Пожалуйста |
LinaInverse,
<head> <meta charset="utf-8"> </head> <body> <input type="text"> <div>Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Свой подзаголовок, эта напоивший текста по всей до одна несколько обеспечивает свой все, рукописи мир то продолжил скатился дал алфавит всеми.</div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script> function escapeRegExp(string){ return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); } var str = $('div').text(); $('input').on('input', function(){ var v = this.value; var inp = new RegExp(escapeRegExp(v), 'g'); var text = str.replace(inp, '<span style="color:red">'+v+'</span>'); $('div').html(text); }); </script> </body> |
Rise,
они найденное RegExp перезаписывают на RegExp :) |
LinaInverse,
исправил немного код, скопируйте заново пост№2 |
LinaInverse,
this.value лучше не трогать ... var text = str.replace(inp, '<span style="color:red">'+this.value+'</span>'); или смотрите код выше |
LinaInverse,
:lol: окончательный вариант ... var str = $('div').text(); $('input').on('input', function(){ var v = this.value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); var inp = new RegExp(v, 'g'); var text = str.replace(inp, '<span style="color:red">$&</span>'); $('div').html(text); }); |
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 07:33. |