piapia123
es

Comprobador de códigos de tecla

Consultas

Todo se ejecuta en tu navegador: no se sube nada

Pulsa una teclaSin botón de ejecutar: pulsa y aparece

Haz clic aquí y pulsa cualquier tecla

Las teclas que pulses se iluminan en el dibujo. ⚠️ Elegir mal la distribución no afecta al resultado: las teclas se colocan por **posición física**, así que las luces ya te dicen qué teclado tienes — una tecla de más junto al Shift izquierdo es ISO, y tres teclas japonesas junto a la barra espaciadora es JIS.

Las combinaciones con Ctrl / Alt / Cmd **no** se interceptan, así que los atajos del navegador siguen funcionando (Ctrl+W seguirá cerrando la pestaña).

Detalles de la tecla

Aún no has pulsado ninguna tecla.

Referencia de teclas110 teclas
Tabla ASCII (0–127)La columna hexadecimal es la forma de escape (0x41 = \x41)
Tabla ASCII
DecHexCarácterNombre
00x00NULNULNulo (termina las cadenas en C)
10x01SOHSOH
20x02STXSTX
30x03ETXETX
40x04EOTEOT
50x05ENQENQ
60x06ACKACK
70x07BELBELCampana (la terminal emite un pitido)
80x08BSBS
90x09HTHTTabulador horizontal (tecla Tab)
100x0ALFLFSalto de línea (el fin de línea de Unix)
110x0BVTVT
120x0CFFFF
130x0DCRCRRetorno de carro (fin de línea del Mac clásico; Windows usa CRLF)
140x0ESOSO
150x0FSISI
160x10DLEDLE
170x11DC1DC1
180x12DC2DC2
190x13DC3DC3
200x14DC4DC4
210x15NAKNAK
220x16SYNSYN
230x17ETBETB
240x18CANCAN
250x19EMEM
260x1ASUBSUB
270x1BESCESCEscape (las secuencias de escape ANSI empiezan con él)
280x1CFSFS
290x1DGSGS
300x1ERSRS
310x1FUSUS
320x20 SPACE
330x21!EXCLAMATION MARK
340x22"QUOTATION MARK
350x23#NUMBER SIGN
360x24$DOLLAR SIGN
370x25%PERCENT SIGN
380x26&AMPERSAND
390x27'APOSTROPHE
400x28(LEFT PARENTHESIS
410x29)RIGHT PARENTHESIS
420x2A*ASTERISK
430x2B+PLUS SIGN
440x2C,COMMA
450x2D-HYPHEN-MINUS
460x2E.FULL STOP
470x2F/SOLIDUS
480x300DIGIT 0
490x311DIGIT 1
500x322DIGIT 2
510x333DIGIT 3
520x344DIGIT 4
530x355DIGIT 5
540x366DIGIT 6
550x377DIGIT 7
560x388DIGIT 8
570x399DIGIT 9
580x3A:COLON
590x3B;SEMICOLON
600x3C<LESS-THAN SIGN
610x3D=EQUALS SIGN
620x3E>GREATER-THAN SIGN
630x3F?QUESTION MARK
640x40@COMMERCIAL AT
650x41ALATIN CAPITAL LETTER A
660x42BLATIN CAPITAL LETTER B
670x43CLATIN CAPITAL LETTER C
680x44DLATIN CAPITAL LETTER D
690x45ELATIN CAPITAL LETTER E
700x46FLATIN CAPITAL LETTER F
710x47GLATIN CAPITAL LETTER G
720x48HLATIN CAPITAL LETTER H
730x49ILATIN CAPITAL LETTER I
740x4AJLATIN CAPITAL LETTER J
750x4BKLATIN CAPITAL LETTER K
760x4CLLATIN CAPITAL LETTER L
770x4DMLATIN CAPITAL LETTER M
780x4ENLATIN CAPITAL LETTER N
790x4FOLATIN CAPITAL LETTER O
800x50PLATIN CAPITAL LETTER P
810x51QLATIN CAPITAL LETTER Q
820x52RLATIN CAPITAL LETTER R
830x53SLATIN CAPITAL LETTER S
840x54TLATIN CAPITAL LETTER T
850x55ULATIN CAPITAL LETTER U
860x56VLATIN CAPITAL LETTER V
870x57WLATIN CAPITAL LETTER W
880x58XLATIN CAPITAL LETTER X
890x59YLATIN CAPITAL LETTER Y
900x5AZLATIN CAPITAL LETTER Z
910x5B[LEFT SQUARE BRACKET
920x5C\REVERSE SOLIDUS
930x5D]RIGHT SQUARE BRACKET
940x5E^CIRCUMFLEX ACCENT
950x5F_LOW LINE
960x60`GRAVE ACCENT
970x61aLATIN SMALL LETTER A
980x62bLATIN SMALL LETTER B
990x63cLATIN SMALL LETTER C
1000x64dLATIN SMALL LETTER D
1010x65eLATIN SMALL LETTER E
1020x66fLATIN SMALL LETTER F
1030x67gLATIN SMALL LETTER G
1040x68hLATIN SMALL LETTER H
1050x69iLATIN SMALL LETTER I
1060x6AjLATIN SMALL LETTER J
1070x6BkLATIN SMALL LETTER K
1080x6ClLATIN SMALL LETTER L
1090x6DmLATIN SMALL LETTER M
1100x6EnLATIN SMALL LETTER N
1110x6FoLATIN SMALL LETTER O
1120x70pLATIN SMALL LETTER P
1130x71qLATIN SMALL LETTER Q
1140x72rLATIN SMALL LETTER R
1150x73sLATIN SMALL LETTER S
1160x74tLATIN SMALL LETTER T
1170x75uLATIN SMALL LETTER U
1180x76vLATIN SMALL LETTER V
1190x77wLATIN SMALL LETTER W
1200x78xLATIN SMALL LETTER X
1210x79yLATIN SMALL LETTER Y
1220x7AzLATIN SMALL LETTER Z
1230x7B{LEFT CURLY BRACKET
1240x7C|VERTICAL LINE
1250x7D}RIGHT CURLY BRACKET
1260x7E~TILDE
1270x7FDELDELETESuprimir (la tecla del teclado numérico, no Retroceso)

Una misma pulsación tiene tres respuestas distintas, y se confunden todo el rato. `event.key` es el carácter producido y sigue la distribución del teclado y Shift: Shift+2 es `@` en un teclado estadounidense y `"` en uno alemán. `event.code` es la posición física: `Digit2` es la segunda tecla de la fila de números, escriba lo que escriba en esa máquina. `event.keyCode` es el número de los años noventa: obsoleto y ambiguo — sigue más o menos el carácter (`A` y `a` son ambos 65), pero con la puntuación sigue la posición (`;` y `:` son ambos 186). Esta herramienta pone los tres en paralelo y etiqueta a qué sigue cada uno. Pulsa una tecla y verás los cuatro campos más el valor ASCII; debajo hay una tabla de más de 100 teclas y la tabla ASCII completa de 0 a 127. Todo se calcula en tu navegador: las teclas que pulsas no salen de este dispositivo.

Funciones

  • Pulsa cualquier tecla y verás key, code, keyCode, which y el valor ASCII a la vez
  • Cada campo va etiquetado con a qué sigue: el carácter, la posición física o un valor heredado
  • Los caracteres imprimibles traen el ASCII en decimal y en hexadecimal (`A` es 65 / 0x41)
  • Las teclas con nombre traen su código de control ASCII (Intro es 13 / CR, Supr es 127 / DEL), que es el origen del desajuste entre keyCode y ASCII
  • Se listan los modificadores que estén pulsados a la vez (Ctrl + Shift)
  • Se marcan los eventos de repetición automática, que es lo que hace falta para detectar una tecla mantenida
  • La composición de IME se avisa explícitamente (durante ella `key` es `Process`, no un fallo)
  • Una tabla de más de 100 teclas, buscable por nombre, code, keyCode o valor ASCII
  • Shift / Ctrl / Alt izquierdo y derecho van en entradas distintas: solo `code` los distingue
  • La tabla ASCII completa de 0 a 127, con los caracteres de control como abreviaturas en vez de 33 celdas en blanco
  • Las combinaciones con Ctrl / Alt / Cmd no se interceptan, así que los atajos del navegador siguen funcionando

Cómo se usa

  1. Haz clic en el recuadro de detección de arriba y pulsa cualquier tecla
  2. La lista de resultados muestra al momento el key, code, keyCode, valor ASCII y modificadores de esa tecla
  3. Sigue pulsando teclas para ver más: no hay ningún botón que pulsar
  4. Busca en la tabla de abajo por nombre o valor, o recorre la tabla ASCII de 0 a 127

Preguntas frecuentes

Si keyCode está obsoleto, ¿para qué consultarlo?
Porque lo que se declaró obsoleto es la especificación, no el hecho de que aparezca en el código. Los proyectos existentes, las bibliotecas antiguas y una gran cantidad de código de ejemplo todavía en uso emplean `event.keyCode`, y leerlos exige saber qué significan esos números. Al escribir código nuevo hace falta la misma tabla al revés, para confirmar si una tecla dada debería leerse ahora de `key` o de `code`. Por eso se muestra junto a los otros dos, marcado como obsoleto, en vez de esconderse.
¿Por qué Supr tiene keyCode 46 y ASCII 127?
Los dos números responden a preguntas distintas. `keyCode` dice qué tecla se pulsó, y la tecla Supr lleva el valor 46; ASCII dice qué carácter se produjo, y Supr es 127 (DEL). Con Intro pasa lo mismo con un giro: su `keyCode` de 13 coincide con su código de control ASCII 13 (CR) solo porque esa tecla ha producido ese byte desde la época del teletipo. La herramienta muestra las dos columnas por separado para que esto quede a la vista en vez de confundirse.
¿Debería usar key o code en mi propio código?
Depende de si te refieres al carácter o a la posición. Los atajos de teclado (Ctrl+S y compañía) deben usar `code`, que sigue la tecla física y sigue funcionando cuando el usuario cambia a una distribución francesa o rusa. Todo lo que tenga que ver con lo que el usuario escribió de verdad debe usar `key`: el manejo de entrada, las pistas de atajos y los juegos lo quieren. El fallo histórico es justo lo que motivó la obsolescencia de `keyCode`: los atajos escritos con él se rompen en teclados que no son estadounidenses.
¿Por qué mi teclado de entrada de chino o japonés muestra Process?
Porque en ese momento la pulsación todavía no se ha convertido en carácter. Mientras el IME compone, el navegador informa de `key` como `Process` y de `keyCode` como 229, y la herramienta además marca la composición. No es un fallo sino una señal real: para saber qué escribió de verdad el usuario hay que leer después de `compositionend`, porque leer solo `keydown` convierte una frase entera en una ristra de `Process`.
¿Por qué Ctrl+W no se intercepta en esta página?
A propósito. La página solo intercepta la acción por defecto de unas pocas teclas, y solo mientras el recuadro de detección tiene el foco y no hay ningún modificador pulsado: Espacio y las flechas, para que la página no se desplace, y `/` para la búsqueda rápida de Firefox. Todo lo que lleve Ctrl, Alt o Cmd se deja pasar, porque pertenece al navegador y al sistema operativo: tragarse Ctrl+W (cerrar pestaña), F5 (recargar) o F12 (herramientas de desarrollo) solo haría pensar a la gente que su navegador está roto.

Herramientas relacionadas