2015-09-08 4 views
2

Почему код:charCodeAt генерирует неправильный код для запятой

','.charCodeAt(0); 

44 генерирует даже если charcode для запятой 188 (как по this table и при получении event.keyCode в keyup обработчика).

+4

'charCodeAt()' возвращает значение ascii символа. '44' - это код ascii запятой. См. Http://www.asciitable.com/ для получения дополнительной информации. – Tro

+4

Персонажи и ключи - это две разные вещи. Вот почему они не обязательно имеют один и тот же код. –

+0

Я понимаю путаницу, особенно когда у SO есть такие вопросы, как http://stackoverflow.com/questions/1430989/how-to-convert-char-to-keycode, где принятый ответ смущает два термина и другие ответы, содержащие устаревшую информацию. В идеале их следует очистить. – Jan

ответ

2

Персонажи и ключи - это разные вещи.

charCodeAt возвращает числовое значение Юникода символа.
keyCode от KeyboardEvent представляет собой ключ на клавиатуре.

Поскольку между символами и ключами нет 1: 1, они не обязательно используют одни и те же значения.

+0

И если вы не указали * *, чтобы сопоставить коды ключей с символами, вы можете сделать это через массив. Вам придется писать эту реализацию самостоятельно, хотя она не встроена. – Jan

Смежные вопросы