Tastencodes für Zifferntasten in JavaScript

Jede Zifferntaste mit ihrem event.key, event.code und dem veralteten keyCode. Ziffern der oberen Reihe nutzen keyCode 48–57; Ziffern des Nummernblocks 96–105 und event.code Numpad0–Numpad9.

Aktualisiert am

Tasteevent.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

Ziffern aus beiden Reihen erkennen

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

Auf französischen AZERTY-Tastaturen tippt die obere Reihe ohne Shift Symbole (&, é, " …), daher ist e.key dort keine Ziffer – ein weiterer Grund, e.key zu prüfen, statt Positionen vorauszusetzen.

Häufige Fragen

Wird event.key bei Zahlen groß oder klein geschrieben?
Buchstaben folgen Shift und Feststelltaste: event.key ist normalerweise „a“ und mit Shift „A“. event.code bleibt in beiden Fällen KeyA.
Ändern sich Key Codes mit dem Tastaturlayout?
event.key ändert sich mit dem Layout (auf einer französischen AZERTY-Tastatur tippt die A-Position ein Q); event.code benennt immer die physische Taste.
Sollte ich trotzdem keyCode verwenden?
Nein – es ist veraltet. Verwende event.key für Zeichen und event.code für Positionen.