Javascript: Как я могу проверить, является ли нажатой клавишей в поле формы цифра (0 - 9)? - PullRequest
8 голосов
/ 10 сентября 2009

Я использую событие onkeyup в поле формы в JavaScript и хочу проверить, является ли нажатая клавиша цифровой цифрой, т.е. 0 - 9, поэтому я могу что-то сделать с помощью ввода.

<input type="text" onkeyup="" />

Нужно ли для этого использовать Regex?

Спасибо

Ответы [ 5 ]

11 голосов
3 голосов
/ 05 сентября 2017

Используйте event.key, чтобы получить фактическое значение. Чтобы проверить, целое число, просто используйте isFinite

input.addEventListener("keydown", function(event) {
    const isNumber = isFinite(event.key);
});

Другой вариант:

const isNumber = /^[0-9]$/i.test(event.key)

Более простым решением HTML было бы использование ввода типа number. Он ограничивается только числами (вид).

<input type="number">

В любом случае вы должны очистить весь пользовательский ввод с помощью:

string.replace(/[^0-9]/g,'');
1 голос
/ 14 сентября 2017

разрешено только 0-9, остальные буквы будут проглочены.

$('#id').keypress(function (e) {
            var validkeys = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'];
            if (validkeys.indexOf(e.key) < 0)
                return false;
        });
0 голосов
/ 21 марта 2017

Я использовал следующую функцию, чтобы проверить, является ли данная строка числом или нет

// Validate Numeric inputs
function isNumber(o) {
    return o == '' || !isNaN(o - 0);
}

Предполагая, что ваш код ключа для события keyup или keydown находится в переменной keyCode:

var keyCode = e.keyCode || e.which;
if (keyCode >= 96 && keyCode <= 105) {
        // Numpad keys
        keyCode -= 48;
}
console.log(isNumber(String.fromCharCode(keyCode)));
0 голосов
/ 10 сентября 2009

Смотрите это:

http://www.javascriptkit.com/javatutors/javascriptkey2.shtml

<script type="text/javascript">
function displayunicode(e){
var unicode=e.keyCode? e.keyCode : e.charCode
if unicode >= 48 && unicode <= 57 {
    alert('number')
}
else{
}
    alert('nonnumber')
}
</script>
<form>
<input type="text" size="2" maxlength="1" onkeyup="displayunicode(event); this.select()" />
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...