Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как заставить функцию не реагировать на пробелы? (https://javascript.ru/forum/events/79071-kak-zastavit-funkciyu-ne-reagirovat-na-probely.html)

Adrikks 13.12.2019 09:45

Как заставить функцию не реагировать на пробелы?
 
Подскажите, есть поле с исходной строкой и поле с искомой строкой.
Допустим в первом поле занесено "добрый день".
Во втором "до де"

Результат поиска выводится в id="result
И был бы он таким "добрый день"
То есть при на второе поле вешается oninput и выполняется поиск вхождения второго поля в первой. Это работает в целом. Но есть небольшой косяк. При вводе во вторую строку допустим "до" он выделит "добрый день"
но если я после этого введу пробел в строке и там будет соответственно "до " то результат получается "b"до"/b"брый день
Собственно пытаюсь сделать так, чтобы функция не реагировала на пробелы последним символов как минимум))
Исходная строка: <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() {
   t = document.getElementById("search").value;
   word =  t.trim().split(' ');
   for (var i = 0; i < word.length; i++){
       if(i<1)
      replaced= text.value.replace(new RegExp(word[i],'g'),"<b>"+word[i]+"</b>");
    else
      replaced= replaced.replace(new RegExp(word[i],'g'),"<b>"+word[i]+"</b>");
   }
  result.innerHTML=replaced;
   }

ksa 13.12.2019 10:16

Цитата:

Сообщение от Adrikks
чтобы функция не реагировала на пробелы последним символов

Как вариант...
var val='до ';
val=val.replace(/\s+$/,'');
alert('"'+val+'"');

Adrikks 13.12.2019 10:28

Цитата:

Сообщение от ksa (Сообщение 517414)
Как вариант...
var val='до ';
val=val.replace(/\s+$/,'');
alert('"'+val+'"');

Мне вот тут посоветовали хороший вариант и сработал он прям как надо)
"Попробуй заменить t.split(' '); на t.trim().split(' '); Тогда пробелы с конца строки уйдут" - совет собственно)
Но спасибо за отзывчивость.

ksa 13.12.2019 10:32

Adrikks, метод trim() удаляет пробелы с обоих сторон...
https://puzzleweb.ru/javascript/string_trim.php
Ты просил только с конца... :D

рони 13.12.2019 13:51

Adrikks,
поиск и подсветка слов в тексте

Malleys 13.12.2019 19:19

Цитата:

Сообщение от ksa
метод trim() удаляет пробелы с обеих сторон...

Цитата:

Сообщение от ksa
просил только с конца...

Ещё есть trimEnd (и не стандартный trimRight в некоторых браузерах и в MS Edge)


Часовой пояс GMT +3, время: 19:36.