Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Удаление всех   из текста (поиск и удаление любого слова из текста) (https://javascript.ru/forum/jquery/69487-udalenie-vsekh-nbsp%3B-iz-teksta-poisk-i-udalenie-lyubogo-slova-iz-teksta.html)

Stenli 27.06.2017 13:56

Удаление всех   из текста (поиск и удаление любого слова из текста)
 
Я создаю массив из слов, которые нужно удалить из определенного текста. Пока что в массиве только  

Проблема: я не знаю, как в return вставить правильно, чтобы произошла замена найденного слова, учитывая, что это не обычное литературное слово, а код неразрывного пробела. Также нужно учитывать, что в будущем я могу в массив добавить, как обычные слова, так и иные знаки, типа кода кавычек и так далее.


var unData = [' '];
for (var i=0; i < unData.length; i++) {
  $(div).html(function (a,h) {
    return h.replace('/'+unData[i]+'/g','');
    });
  }

рони 27.06.2017 14:14

Цитата:

Сообщение от Stenli
'/'+unData[i]+'/g'

так создать регулярное выражение нельзя , для этого есть обьект RegExp, и строку надо экранировать на случай служебных символов в строке.

рони 27.06.2017 14:18

Stenli,
#экранирование-специальных-символов

рони 27.06.2017 14:23

Stenli,
function escapeRegExp(string){
  return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
}
var unData = ['&nbsp;'];
unData.forEach(function(item) {
  var regexp = new RegExp(escapeRegExp(item), "g");
  $(div).html(function (a,h) {
    return h.replace(regexp,'');
    });
})

рони 27.06.2017 14:30

Stenli,
и если слова нужны, то лучше по текстовым нодам идти и удалять

Stenli 28.06.2017 19:47

Цитата:

Сообщение от рони (Сообщение 456671)

Спасибо (не получается прибавить карму).


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