Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Замена пробела в инпуте (https://javascript.ru/forum/misc/80475-zamena-probela-v-inpute.html)

AMATORx 09.06.2020 11:22

Замена пробела в инпуте
 
Подскажите пожалуйста, как заменить нажатия пробел в инпуте на знак умножения?
<body>
	<input type="text" id="inp">
</body>

document.getElementById('inp').onkeypress = function(eve){
	if(eve.keyCode < 48 || eve.keyCode > 57 ){;
	return false;
	}
}

Nexus 09.06.2020 13:23

<body>
    <input type="text" id="inp">
</body>

<script>
var SPACE_KEYCODE = 32;

document.getElementById('inp').onkeypress = function(eve) {
    if ((eve.keyCode < 48 || eve.keyCode > 57) && eve.keyCode != SPACE_KEYCODE) {
        return false;
    }

    this.value = this.value.replace(/\s+?/g, '*');
}
</script>

SuperZen 09.06.2020 13:50

Nexus, А если copy+paste? Например "гг гг"...

в общем, комплексная проблема )

рони 09.06.2020 13:54

замена пробела на знак умножения
 
AMATORx,

<!doctype html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Document</title>



</head>
<body>
<input type="text" id="inp">
<script>
document.getElementById('inp').onkeypress = function(event){
    if(event.keyCode == 32){
    var v = this.value;
    var a = this.selectionStart;
    this.value = v.substr(0,a) + '×' + v.substr(a);
    this.selectionStart=this.selectionEnd=++a;
    };

    if(event.keyCode < 48 || event.keyCode > 57 ){
    return false;
    }
}

</script>
</body>
</html>

Nexus 09.06.2020 14:00

Цитата:

Сообщение от SuperZen
в общем, комплексная проблема )

Просто способ решения несколько геморойный выбран.

<input type="text" id="input">

<script>
document.querySelector('#input').addEventListener('input', function () {
	this.value = this.value.replace(/[^\s\d*]+?/g, '').replace(/\s+?/g, '*');
});
</script>


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