Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Запрет определенных слов в input (https://javascript.ru/forum/dom-window/58435-zapret-opredelennykh-slov-v-input.html)

dasha862 14.10.2019 00:33

Доброго времени.

В продолжении темы, подскажите, пожалуйста, как исключить из input только само запрещённое слово?


<input type="text" id="txtCommand">
<script>
	var blackList = ['поле'];

	document.getElementById("txtCommand").onkeyup = function() {
	var expr = new RegExp(blackList.join('|'), 'i');
	if (this.value.search(expr) !== -1) {
	this.value = '';
	}
}
</script>

То есть, чтобы из input удалялось только запрещённое слово, а не вся стока целиком. Например, ввожу "сочные луга поле", сочные луга - остаются, поле - удаляется.

рони 14.10.2019 08:37

dasha862,
<input type="text" id="txtCommand">
<script>
	var blackList = ['поле'];
 	document.getElementById("txtCommand").addEventListener('input', function() {
	var expr = new RegExp(blackList.join('|'), 'ig');
	if (expr.test(this.value)) {
    expr.lastIndex = 0;
	this.value = this.value.replace(expr, '');
	}
}, false)
</script>

dasha862 14.10.2019 13:39

То, что нужно.
Рони, большое спасибо за помощь!


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