Коды клавиш с цифрами в JavaScript

Каждая цифровая клавиша с её event.key, event.code и устаревшим keyCode. Цифры верхнего ряда используют keyCode 48–57, цифры на numpad — 96–105 и event.code Numpad0–Numpad9.

Обновлено

Клавишаevent.keyevent.codekeyCode
00Digit0 / Numpad048 / 96
11Digit1 / Numpad149 / 97
22Digit2 / Numpad250 / 98
33Digit3 / Numpad351 / 99
44Digit4 / Numpad452 / 100
55Digit5 / Numpad553 / 101
66Digit6 / Numpad654 / 102
77Digit7 / Numpad755 / 103
88Digit8 / Numpad856 / 104
99Digit9 / Numpad957 / 105

Определение цифры из любого ряда

document.addEventListener('keydown', (e) => {
  if (/^[0-9]$/.test(e.key)) {
    console.log('digit', Number(e.key)); // top row or numpad
  }
});

На французских раскладках AZERTY верхний ряд без Shift вводит символы (&, é, « …), поэтому e.key там не является цифрой — ещё одна причина проверять e.key, а не полагаться на позиции клавиш.

Часто задаваемые вопросы

Как event.key выглядит в верхнем и нижнем регистре для цифр?
Буквы зависят от Shift и Caps Lock: обычно event.key равен «a», а с Shift — «A». event.code при этом всегда остаётся KeyA.
Меняются ли коды клавиш в зависимости от раскладки?
event.key меняется в зависимости от раскладки (на французской AZERTY клавиша на месте A вводит Q); event.code всегда обозначает физическую клавишу.
Нужно ли по-прежнему использовать keyCode?
Нет — он устарел. Используйте event.key для символов и event.code для позиций клавиш.