2009-09-16 19 views
28

¿Cómo puedo convertir un carácter a su código clave respectivo?¿Cómo convertir un carácter a su código clave?

Por ejemplo:

  • a a 65
  • b a 66
  • c a 67
  • d a 68
+0

ver [http://stackoverflow.com/questions/302122/jquery-event-keypress-which-key-was-pressed](http://stackoverflow.com/questions/302122/jquery-event-keypress- which-key-was-pressed) – goldenratio

+0

see [Lista COMPLETA de códigos de tecla de JavaScript] (http://stackoverflow.com/questions/5603195/full-list-of-javascript-keycodes) –

Respuesta

29

Puede utilizar el charCodeAt función para lograr esto.

ejemplo de trabajo:

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

+0

Estoy teniendo un char let say ' a 'y necesito encontrar el código clave respectivo de' a '. – Santhosh

+32

No estoy seguro de si esto realmente responde a la pregunta, depende de lo que quiere decir con "código clave". Esta función le proporciona el código de carácter, no el código de tecla, que puede no ser la misma cosa. –

+5

O bien el término código clave DEBE ser cambiado en la pregunta original, o esta es una respuesta incorrecta. Keycode es lo que obtienes de e.which - cuando se presiona una tecla. –

2

encontrar una tabla código clave/ascii como this one y ponerlo en una matriz tal que array [ 'Char'] = código clave. Esto es tedioso, pero el código se ejecutará bastante rápido.

13

¿Qué quiere decir con "keyCode"? Los diferentes navegadores tienen valores keyCode diferentes en los eventos keyup y keydown que no necesariamente se corresponderán con el código ASCII para el carácter correspondiente. Para las claves alfanuméricas, el evento keypress le dará el código ASCII en la mayoría de los navegadores a través de las propiedades charCode o which. This page es útil.

actualización de septiembre de 2015

Como se ha señalado por Jan en los comentarios, keyCode finalmente será reemplazado por el key propiedad superior. Sin embargo, todavía no hay mucho soporte de navegador para esto.

+0

@ Jan: Según [MDN] (https: //developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent), 'char' ha sido eliminado. 'key' es mucho mejor que' keyCode', pero aún no es ampliamente compatible. Para el corto y mediano plazo, 'keyCode' y' which' se quedan con nosotros. –

+0

Agradable. La tuya debería ser la respuesta aceptada por cierto. La respuesta aceptada no responde la pregunta en absoluto. Responde una * pregunta * diferente, pero no la pregunta – Jan

+1

"la propiedad clave superior"?!? No veo cómo trabajar con cadenas como '" ArrowDown "' o '" Enter "' se supone que es mejor que trabajar con valores ASCII Integer o cómo desaprobar tanto 'keyCode' como' which' se supone que es útil para cualquier persona . Sin al menos una forma práctica y estándar de convertir '" Enter "' a '13' y viceversa, ¡esto no tiene sentido en absoluto! –

Cuestiones relacionadas