Нужно заменить каждую букву слова, которое находится в массиве на * JS

96
22 марта 2022, 14:50

При нажатии на кнопку cenzor нужно заменить каждую букву слова, которое находится в массиве на "*". Не понимаю как нужно поставить условие. То есть, в данном случае если мы вводим большой текст в textarea то при нажатии на кнопку cenzor слово "java" и "html" будут выглядеть так **** и ****. И это все нужно сделать не используя регулярные выражения

let textarea = document.getElementById('textarea'); 
let cenzor = document.getElementById('cenzor'); 
 
let badWordsArray = ['java', 'html']; 
 
cenzor.addEventListener('click', function() { 
 
  for (let i = 0; i < badWordsArray.length; i++) { 
    if (textarea.value.includes(badWordsArray[i])) { 
      console.log(true); 
 
    } else { 
      console.log(false); 
 
    } 
  } 
 
})
<textarea name="" placeholder="Write some text" id="textarea"></textarea> 
<input type="button" value="Cenzor" id="cenzor" class="btn btn-success">

Answer 1

заменяет на звездочки если badWords отдельное слово

cenzor.addEventListener('click', function() { 
  textarea.value = textarea.value.split(' ').map(word => badWordsArray.includes(word) ? '*'.repeat(word.length) : word).join(' '); 
})

заменяет на звездочки даже если badWords в составе другого слова

let textarea = document.getElementById('textarea'); 
let cenzor = document.getElementById('cenzor'); 
 
let badWordsArray = ['java', 'html']; 
 
const replacer = word => { 
  for (let i = 0; i < badWordsArray.length; i++) { 
    const badWord = badWordsArray[i]; 
    if (word.includes(badWord)) { 
      return replacer(word.replace(badWord, '*'.repeat(badWord.length))) 
    } 
  } 
  return word; 
} 
 
cenzor.addEventListener('click', function() { 
  textarea.value = textarea.value.split(' ').map(replacer).join(' '); 
})
<textarea name="" placeholder="Write some text" id="textarea"></textarea> 
<input type="button" value="Cenzor" id="cenzor" class="btn btn-success">

READ ALSO
Как встроить js код (javascript) в андроид

Как встроить js код (javascript) в андроид

Есть той сервис как Вебвизор у ЯндексМетрики, дан код как на картинке, и его нужно вставить в WebView в программеВидел однажды такую реализацию...

130
Обнаружение строки-палиндрома

Обнаружение строки-палиндрома

Прошу подсказать наиболее эффективный способ обнаружения строки-палиндромаОсновной камень преткновения - символы пунктуации и иже с ними

110
Как правильно записать в коде async/await javascript

Как правильно записать в коде async/await javascript

я начинающий разработчик на JavaScript и начал изучат обещания, и меня интересует как правильно использовать в коде async/awaitКак записывать обычные...

168