@nick_name2002

Как заменить каждый из символов подстроки на звездочку?

Дело в том, что заменяет на одну звездочку, как сделать так, чтобы слово заменялось на звездочки по количеству букв?

<div id="less36">
		<div class="container">
			<div class="row">
				<div class="col-lg-12">
					<h2>Поиск мата и его замена на ***</h2>
					<h4 style="margin-bottom: 15px;">(Плохие слова : блин, пипец, хер)</h4>
					<textarea id="text_36" cols="35" rows="5">Как же блин хорошо, просто пипец как хорошо, что аж хер его знает.</textarea><br>
					<button type="button" id='btn36' class="btn btn-outline-primary" onclick='BadWords()' style="margin-bottom: 15px;">Push</button>
					<h4 id="output36"></h4>
				</div>
			</div>
		</div>
	</div>

const badWords = ['блин', 'пипец', 'хер',];

function BadWords() {
    var out = document.getElementById('output36');
    let field = document.getElementById('text_36').value;
    for (var i = 0; i < badWords.length; i++){
        field = field.replace(badWords[i], '*');
    }
    out.innerHTML = field;
}
  • Вопрос задан
  • 199 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
out.innerText = badWords.reduce((str, n) => str.replaceAll(n, '*'.repeat(n.length)), field);
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега JavaScript
♬♬
Если с минимумом изменений, то так:
-        field = field.replace(badWords[i], '*');
+        field = field.replaceAll(badWords[i], '*'.repeat(badWords[i].length));
звёздочку повторить столько раз, сколько букв в заменяемом слове.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы