Comprobador de códigos de tecla
ConsultasTodo se ejecuta en tu navegador: no se sube nada
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).
Aún no has pulsado ninguna tecla.
| Dec | Hex | Carácter | Nombre |
|---|---|---|---|
| 0 | 0x00 | NUL | NULNulo (termina las cadenas en C) |
| 1 | 0x01 | SOH | SOH |
| 2 | 0x02 | STX | STX |
| 3 | 0x03 | ETX | ETX |
| 4 | 0x04 | EOT | EOT |
| 5 | 0x05 | ENQ | ENQ |
| 6 | 0x06 | ACK | ACK |
| 7 | 0x07 | BEL | BELCampana (la terminal emite un pitido) |
| 8 | 0x08 | BS | BS |
| 9 | 0x09 | HT | HTTabulador horizontal (tecla Tab) |
| 10 | 0x0A | LF | LFSalto de línea (el fin de línea de Unix) |
| 11 | 0x0B | VT | VT |
| 12 | 0x0C | FF | FF |
| 13 | 0x0D | CR | CRRetorno de carro (fin de línea del Mac clásico; Windows usa CRLF) |
| 14 | 0x0E | SO | SO |
| 15 | 0x0F | SI | SI |
| 16 | 0x10 | DLE | DLE |
| 17 | 0x11 | DC1 | DC1 |
| 18 | 0x12 | DC2 | DC2 |
| 19 | 0x13 | DC3 | DC3 |
| 20 | 0x14 | DC4 | DC4 |
| 21 | 0x15 | NAK | NAK |
| 22 | 0x16 | SYN | SYN |
| 23 | 0x17 | ETB | ETB |
| 24 | 0x18 | CAN | CAN |
| 25 | 0x19 | EM | EM |
| 26 | 0x1A | SUB | SUB |
| 27 | 0x1B | ESC | ESCEscape (las secuencias de escape ANSI empiezan con él) |
| 28 | 0x1C | FS | FS |
| 29 | 0x1D | GS | GS |
| 30 | 0x1E | RS | RS |
| 31 | 0x1F | US | US |
| 32 | 0x20 | SPACE | |
| 33 | 0x21 | ! | EXCLAMATION MARK |
| 34 | 0x22 | " | QUOTATION MARK |
| 35 | 0x23 | # | NUMBER SIGN |
| 36 | 0x24 | $ | DOLLAR SIGN |
| 37 | 0x25 | % | PERCENT SIGN |
| 38 | 0x26 | & | AMPERSAND |
| 39 | 0x27 | ' | APOSTROPHE |
| 40 | 0x28 | ( | LEFT PARENTHESIS |
| 41 | 0x29 | ) | RIGHT PARENTHESIS |
| 42 | 0x2A | * | ASTERISK |
| 43 | 0x2B | + | PLUS SIGN |
| 44 | 0x2C | , | COMMA |
| 45 | 0x2D | - | HYPHEN-MINUS |
| 46 | 0x2E | . | FULL STOP |
| 47 | 0x2F | / | SOLIDUS |
| 48 | 0x30 | 0 | DIGIT 0 |
| 49 | 0x31 | 1 | DIGIT 1 |
| 50 | 0x32 | 2 | DIGIT 2 |
| 51 | 0x33 | 3 | DIGIT 3 |
| 52 | 0x34 | 4 | DIGIT 4 |
| 53 | 0x35 | 5 | DIGIT 5 |
| 54 | 0x36 | 6 | DIGIT 6 |
| 55 | 0x37 | 7 | DIGIT 7 |
| 56 | 0x38 | 8 | DIGIT 8 |
| 57 | 0x39 | 9 | DIGIT 9 |
| 58 | 0x3A | : | COLON |
| 59 | 0x3B | ; | SEMICOLON |
| 60 | 0x3C | < | LESS-THAN SIGN |
| 61 | 0x3D | = | EQUALS SIGN |
| 62 | 0x3E | > | GREATER-THAN SIGN |
| 63 | 0x3F | ? | QUESTION MARK |
| 64 | 0x40 | @ | COMMERCIAL AT |
| 65 | 0x41 | A | LATIN CAPITAL LETTER A |
| 66 | 0x42 | B | LATIN CAPITAL LETTER B |
| 67 | 0x43 | C | LATIN CAPITAL LETTER C |
| 68 | 0x44 | D | LATIN CAPITAL LETTER D |
| 69 | 0x45 | E | LATIN CAPITAL LETTER E |
| 70 | 0x46 | F | LATIN CAPITAL LETTER F |
| 71 | 0x47 | G | LATIN CAPITAL LETTER G |
| 72 | 0x48 | H | LATIN CAPITAL LETTER H |
| 73 | 0x49 | I | LATIN CAPITAL LETTER I |
| 74 | 0x4A | J | LATIN CAPITAL LETTER J |
| 75 | 0x4B | K | LATIN CAPITAL LETTER K |
| 76 | 0x4C | L | LATIN CAPITAL LETTER L |
| 77 | 0x4D | M | LATIN CAPITAL LETTER M |
| 78 | 0x4E | N | LATIN CAPITAL LETTER N |
| 79 | 0x4F | O | LATIN CAPITAL LETTER O |
| 80 | 0x50 | P | LATIN CAPITAL LETTER P |
| 81 | 0x51 | Q | LATIN CAPITAL LETTER Q |
| 82 | 0x52 | R | LATIN CAPITAL LETTER R |
| 83 | 0x53 | S | LATIN CAPITAL LETTER S |
| 84 | 0x54 | T | LATIN CAPITAL LETTER T |
| 85 | 0x55 | U | LATIN CAPITAL LETTER U |
| 86 | 0x56 | V | LATIN CAPITAL LETTER V |
| 87 | 0x57 | W | LATIN CAPITAL LETTER W |
| 88 | 0x58 | X | LATIN CAPITAL LETTER X |
| 89 | 0x59 | Y | LATIN CAPITAL LETTER Y |
| 90 | 0x5A | Z | LATIN CAPITAL LETTER Z |
| 91 | 0x5B | [ | LEFT SQUARE BRACKET |
| 92 | 0x5C | \ | REVERSE SOLIDUS |
| 93 | 0x5D | ] | RIGHT SQUARE BRACKET |
| 94 | 0x5E | ^ | CIRCUMFLEX ACCENT |
| 95 | 0x5F | _ | LOW LINE |
| 96 | 0x60 | ` | GRAVE ACCENT |
| 97 | 0x61 | a | LATIN SMALL LETTER A |
| 98 | 0x62 | b | LATIN SMALL LETTER B |
| 99 | 0x63 | c | LATIN SMALL LETTER C |
| 100 | 0x64 | d | LATIN SMALL LETTER D |
| 101 | 0x65 | e | LATIN SMALL LETTER E |
| 102 | 0x66 | f | LATIN SMALL LETTER F |
| 103 | 0x67 | g | LATIN SMALL LETTER G |
| 104 | 0x68 | h | LATIN SMALL LETTER H |
| 105 | 0x69 | i | LATIN SMALL LETTER I |
| 106 | 0x6A | j | LATIN SMALL LETTER J |
| 107 | 0x6B | k | LATIN SMALL LETTER K |
| 108 | 0x6C | l | LATIN SMALL LETTER L |
| 109 | 0x6D | m | LATIN SMALL LETTER M |
| 110 | 0x6E | n | LATIN SMALL LETTER N |
| 111 | 0x6F | o | LATIN SMALL LETTER O |
| 112 | 0x70 | p | LATIN SMALL LETTER P |
| 113 | 0x71 | q | LATIN SMALL LETTER Q |
| 114 | 0x72 | r | LATIN SMALL LETTER R |
| 115 | 0x73 | s | LATIN SMALL LETTER S |
| 116 | 0x74 | t | LATIN SMALL LETTER T |
| 117 | 0x75 | u | LATIN SMALL LETTER U |
| 118 | 0x76 | v | LATIN SMALL LETTER V |
| 119 | 0x77 | w | LATIN SMALL LETTER W |
| 120 | 0x78 | x | LATIN SMALL LETTER X |
| 121 | 0x79 | y | LATIN SMALL LETTER Y |
| 122 | 0x7A | z | LATIN SMALL LETTER Z |
| 123 | 0x7B | { | LEFT CURLY BRACKET |
| 124 | 0x7C | | | VERTICAL LINE |
| 125 | 0x7D | } | RIGHT CURLY BRACKET |
| 126 | 0x7E | ~ | TILDE |
| 127 | 0x7F | DEL | DELETESuprimir (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
- Haz clic en el recuadro de detección de arriba y pulsa cualquier tecla
- La lista de resultados muestra al momento el key, code, keyCode, valor ASCII y modificadores de esa tecla
- Sigue pulsando teclas para ver más: no hay ningún botón que pulsar
- 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
Nombres de símbolos
ConsultasConsulta el nombre inglés y el chino de un símbolo: ~ es tilde, # es number sign y también hash, | es pipe. Búsqueda por símbolo o por nombre.
Consulta de codificación de caracteres
WebPunto de código, decimal, bytes UTF-8, unidades UTF-16, entidad HTML, codificación URL y bloque de un carácter; los invisibles llevan sustituto.
Información de tu navegador
WebLo que tu navegador expone a los sitios: user agent, pantalla, zona horaria, núcleos de CPU y renderizador WebGL, leído en local y sin enviar nada.
Tabla periódica
ConsultasConsulta de cualquier elemento el número atómico, los nombres, la masa, el grupo y la configuración electrónica, o lista un periodo o una categoría entera.
Tamaños de papel
ConsultasLos formatos ISO A, B y C y los tamaños norteamericanos en mm, cm y pulgadas, con los píxeles a 72, 150 y 300 DPI. Todo local, sin conexión.
Zodiaco chino
ConsultasConsulta el animal del zodiaco chino y su tronco-rama para un año, o los años de un animal, con los años cercanos y el aviso del límite del año lunar.