Класс 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, время: 23:27. |