web-dev-qa-db-ja.com

文字をキーコードに変換する方法は?

文字をそれぞれのキーコードに変換するにはどうすればよいですか?

例えば:

  • aから65
  • bから66
  • cから67
  • dから68
34
Santhosh

charCodeAt 関数を使用してこれを実現できます。

作業例:

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();">
35
rahul

「keyCode」とはどういう意味ですか?ブラウザーごとに、keyCodeおよびkeyupイベントのkeydown値が異なります。これらの値は、対応する文字のASCIIコードに必ずしも対応するわけではありません。英数字キー、keypressイベントは、ほとんどのブラウザでcharCodeまたはwhichプロパティを介してASCIIコードを提供します。 このページ は便利です。

2015年9月に更新

コメントでJanが指摘したように、keyCodeは最終的に上位の key プロパティに置き換えられます。ただし、これに対するブラウザーのサポートはまだ多くありません。

13
Tim Down

コメントで指摘されているように、受け入れられた答えは正しくありません'a'.charCodeAt(0) == 97で、正しいkeyCodeは65です。

[a-zA-Z]からの標準文字または数字[0-9]のみを変換するには、以下のコードを使用できます。

ただし、これは特殊キーに対しては正常に動作しません.Ö#などのようなものであり、それらに対する適切なソリューションは見つかりませんでした。回避策として、 http://keycode.info/onkeydownイベントをキャプチャし、event.keyCodeプロパティを読み取る)のようなサイトを使用できます。

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>
3
klues

this one のようなキーコード/ ASCIIチャートを見つけて、array ['char'] = keycodeのような配列に入れます。これは面倒ですが、コードは非常に高速に実行されます。

2
Jacob Marble

この質問につまずいたとき、私はこれを探していました。マークされた答えが正しい答えだとは思いません。単純な文字A-Za-zの場合、次を使用します。

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

これは、文字AからZおよびaからzに対してのみ機能することに注意してください。

1
pratyush