Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.06.2017, 13:56
Аспирант
Отправить личное сообщение для Stenli Посмотреть профиль Найти все сообщения от Stenli
 
Регистрация: 25.06.2017
Сообщений: 36

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

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


var unData = [' '];
for (var i=0; i < unData.length; i++) {
  $(div).html(function (a,h) {
    return h.replace('/'+unData[i]+'/g','');
    });
  }
Ответить с цитированием
  #2 (permalink)  
Старый 27.06.2017, 14:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от Stenli
'/'+unData[i]+'/g'
так создать регулярное выражение нельзя , для этого есть обьект RegExp, и строку надо экранировать на случай служебных символов в строке.
Ответить с цитированием
  #3 (permalink)  
Старый 27.06.2017, 14:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Stenli,
#экранирование-специальных-символов
Ответить с цитированием
  #4 (permalink)  
Старый 27.06.2017, 14:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

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,'');
    });
})
Ответить с цитированием
  #5 (permalink)  
Старый 27.06.2017, 14:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Stenli,
и если слова нужны, то лучше по текстовым нодам идти и удалять
Ответить с цитированием
  #6 (permalink)  
Старый 28.06.2017, 19:47
Аспирант
Отправить личное сообщение для Stenli Посмотреть профиль Найти все сообщения от Stenli
 
Регистрация: 25.06.2017
Сообщений: 36

Сообщение от рони Посмотреть сообщение
Stenli,
#экранирование-специальных-символов
Спасибо (не получается прибавить карму).
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск