webentwicklung-frage-antwort-db.com.de

Wie konvertiert man ein Zeichen in seinen Schlüsselcode?

Wie kann ich ein Zeichen in seinen entsprechenden Schlüsselcode konvertieren?

Zum Beispiel:

  • a zu 65
  • b zu 66
  • c zu 67
  • d zu 68
30
Santhosh

Sie können dazu die Funktion charCodeAt verwenden.

Arbeitsbeispiel:

function showKeyCode () {
    var character = document.getElementById("character").value.substring(0, 1);
    var code = document.getElementById("character").value.charCodeAt(0);
    var msg = "The Key Code for the \"" + character + "\" character is " + code + ".";
    alert(msg);
}
<input type="text" id="character" size="15">
<input type="button" value="Show Key Code" onclick="showKeyCode();">

33
rahul

Was meinst du mit "keyCode"? Verschiedene Browser haben unterschiedliche keyCode-Werte in keyup- und keydown-Ereignissen, die nicht unbedingt dem ASCII -Code des entsprechenden Zeichens entsprechen. Bei alphanumerischen Schlüsseln gibt das Ereignis keypress in den meisten Browsern über die Eigenschaften charCode oder which den Code ASCII ein. Diese Seite ist nützlich.

Update September 2015

Wie Jan in den Kommentaren darauf hingewiesen hat, wird keyCode schließlich durch die übergeordnete key - Eigenschaft ersetzt. Es gibt jedoch noch keine große Browserunterstützung dafür.

13
Tim Down

Suchen Sie nach einem Keycode/ASCII-Diagramm wie this und fügen Sie es in ein Array ein, z. Das ist langweilig, aber der Code wird ziemlich schnell ausgeführt.

2
Jacob Marble

In den Kommentaren wurde darauf hingewiesen: Die akzeptierte Antwort ist nicht korrekt, da sie den Zeichencode und nicht den Schlüsselcode angibt, der unterschiedlich sein kann, z. 'a'.charCodeAt(0) == 97, während der richtige Schlüsselcode 65 ist.

um nur die Standardzeichen aus [a-zA-Z] oder Zahlen [0-9] zu konvertieren, kann der nachstehende Code verwendet werden.

Dieses funktioniert jedoch nicht richtig für spezielle Tasten wie ., Ö, # oder was auch immer und ich habe keine gute Lösung dafür gefunden. Als Workaround könnte man eine Site wie http://keycode.info/ verwenden (die nur die onkeydown-Ereignisse erfasst und die event.keyCode-Eigenschaft liest).

function convertToKeyCode(target) {
    var keyCode = target.value.toUpperCase().charCodeAt(0);
    document.getElementById("keyCodeSpan").innerHTML = keyCode;
}
<input type="text" oninput="convertToKeyCode(this)" size="1" maxlength="1">
<span>Keycode: </span><span id="keyCodeSpan"></span>

0
klues

Ich habe danach gesucht, als ich auf diese Frage gestoßen bin. Ich glaube nicht, dass die markierte Antwort die richtige Antwort ist. Für einfache Buchstaben A-Za-z verwende ich Folgendes:

function getKeyCode(char) {
  var keyCode = char.charCodeAt(0);
  if(keyCode > 90) {  // 90 is keyCode for 'z'
    return keyCode - 32;
  }
  return keyCode;
}

Bitte beachten Sie, dass dies nur für die Zeichen A-Z und a-z gilt.

0
pratyush