Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Запрет на ввод символа (https://javascript.ru/forum/misc/65518-zapret-na-vvod-simvola.html)

DivMan 23.10.2016 19:40

Запрет на ввод символа
 
Я не полностью понимаю этот код

https://jsfiddle.net/pv6b2LL3/

document.getElementById("target").addEventListener('input', function() { 
	var tmp = document.getElementById("target").value; 
	var arrReplace = ['a', 'b', 'c', 'd', 'e']; 
  
		for (var i = 0; i < arrReplace.length; i++) { 
		tmp = tmp.split( arrReplace[i]).join(''); 
	} 

	document.getElementById("target").value = tmp; 
});


Вот допустим, я ввожу 'a', событие отслеживается, в переменную tmp запоминается
введённое значение.

Потом в цикле, перебирается в заранее сделанный массив
и введённое значение разбивается на массив, в котором значение будет из массива arrReplace и из всего этого получается строка.

Я этого момента не понял.

рони 23.10.2016 19:50

DivMan,
"test" -> split("e") -> ["t","st"] -> join("") - "tst"
:-?

Aetae 24.10.2016 00:35

...и да, так делать не надо.

DivMan 24.10.2016 09:11

Цитата:

Сообщение от Aetae (Сообщение 432714)
...и да, так делать не надо.

Почему так делать не надо?

Aetae 24.10.2016 14:47

Потому что если с одной строкой это ещё- как-то оправдано, то последовательное повторение с несколькими - сильный оверхед, и на больших текстах будет заметно тормозить. Все замены надо делать в один проход.


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