Comment puis-je convertir un personnage en son code d'activation?
Par exemple:
a
à 65
b
à 66
c
à 67
d
à 68
Vous pouvez utiliser la fonction charCodeAt
pour y parvenir.
Exemple de travail:
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();">
Qu'entendez-vous par "keyCode"? Les différents navigateurs ont différentes valeurs keyCode
dans les événements keyup
et keydown
qui ne correspondront pas nécessairement au code ASCII du caractère correspondant. Pour les clés alphanumériques, l'événement keypress
vous donnera le code ASCII dans la plupart des navigateurs via les propriétés charCode
ou which
. Cette page est utile.
Mise à jour septembre 2015
Comme Jan l'a souligné dans ses commentaires, keyCode
sera éventuellement remplacé par la propriété supérieure key
. Cependant, le navigateur ne prend pas encore en charge cette fonctionnalité.
Trouvez un graphique keycode/ascii comme this one et placez-le dans un tableau tel que array ['char'] = keycode. C'est fastidieux, mais le code s'exécutera assez rapidement.
Comme indiqué dans les commentaires: la réponse acceptée n'est pas correcte, car elle donne le code de caractère et non le code de clé, qui peut être différent, par exemple. 'a'.charCodeAt(0) == 97
alors que le code clé correct est 65
.
pour convertir uniquement les caractères standard de [a-zA-Z] ou les chiffres [0-9], le code ci-dessous peut être utilisé.
Cependant, ce ne fonctionne pas correctement pour les touches spéciales telles que .
, Ö
, #
ou quoi que ce soit et je n’ai pas trouvé de bonne solution pour elles. Pour résoudre ce problème, vous pouvez utiliser un site tel que http://keycode.info/ (qui capture uniquement les événements onkeydown
et lit la propriété 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>
Je cherchais cela quand je suis tombé sur cette question. Je ne pense pas que la réponse marquée est la bonne réponse. Pour les lettres simples, A-Za-z, j'utilise ce qui suit:
function getKeyCode(char) {
var keyCode = char.charCodeAt(0);
if(keyCode > 90) { // 90 is keyCode for 'z'
return keyCode - 32;
}
return keyCode;
}
Veuillez noter que cela ne fonctionne que pour les personnages de A à Z et de a à Z.