javascript - texto - ¿Cómo convertir un char a su código clave?
string unicode javascript (5)
¿Cómo puedo convertir un personaje a su código clave respectivo?
Por ejemplo:
- a
65
-
b
a66
-
c
a67
-
d
al68
¿Qué quieres decir con "keyCode"? Los diferentes navegadores tienen diferentes valores de keyup
en los eventos keyup
y keydown
que no necesariamente se corresponderán con el código ASCII para el carácter correspondiente. Para las teclas alfanuméricas, el evento de keypress
le dará el código ASCII en la mayoría de los navegadores a través del charCode
o de which
propiedades. Esta página es útil.
Actualización septiembre 2015
Como lo señaló Jan en los comentarios, keyCode
eventualmente será reemplazado por la propiedad de key
superior. Sin embargo, no hay mucho soporte de navegador para esto todavía.
Como se señaló en los comentarios: la respuesta aceptada no es correcta , ya que proporciona el código de carácter y no el código de clave, que puede ser diferente, por ejemplo, ''a''.charCodeAt(0) == 97
mientras que el código de clave correcto es 65
.
para convertir solo los caracteres estándar de [a-zA-Z] o los números [0-9] se puede usar el siguiente código.
Sin embargo, esto no funciona correctamente para las teclas especiales como .
, Ö
, #
o lo que sea y no encontré una buena solución para ellos. Como solución alternativa, se podría usar un sitio como http://keycode.info/ (que simplemente captura los eventos onkeydown
y lee la propiedad 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>
Encuentre un gráfico de código clave / ascii como este y colóquelo en una matriz tal que matriz [''char''] = código clave. Esto es tedioso, pero el código se ejecutará bastante rápido.
Estaba buscando esto cuando me topé con esta pregunta. No creo que la respuesta marcada sea la respuesta correcta. Para letras simples, A-Za-z, uso lo siguiente:
function getKeyCode(char) {
var keyCode = char.charCodeAt(0);
if(keyCode > 90) { // 90 is keyCode for ''z''
return keyCode - 32;
}
return keyCode;
}
Tenga en cuenta que esto está destinado a funcionar solo para los caracteres AZ y az.
Puede utilizar la función charCodeAt
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();">