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();">
コメントで指摘されているように、受け入れられた答えは正しくありません。 '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>
this one のようなキーコード/ ASCIIチャートを見つけて、array ['char'] = keycodeのような配列に入れます。これは面倒ですが、コードは非常に高速に実行されます。
この質問につまずいたとき、私はこれを探していました。マークされた答えが正しい答えだとは思いません。単純な文字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に対してのみ機能することに注意してください。