Определение цифры из любого ряда
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, а не полагаться на позиции клавиш.
Поиск keycode для JavaScript
Нажмите любую клавишу и сразу увидите все свойства события клавиатуры, а также готовый к копированию фрагмент keydown для горячих клавиш.