web-dev-qa-db-fra.com

Comment convertir un caractère en son code d'activation?

Comment puis-je convertir un personnage en son code d'activation?

Par exemple:

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

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

33
rahul

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

13
Tim Down

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.

2
Jacob Marble

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>

0
klues

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.

0
pratyush