Rostyk Ice: выведите в конслоль console.log(keyCode) переменную из кода и увидите код/номер нажатой клавиши и далее по аналогии или можете вывести ее в alert(keyCode) как вам будет удобнее.
Rostyk Ice: совершенно не обязательно так как пользователь layout может назначить сам. Но если допустить что у вас будет исключительно qwerty раскладка, то вот пример только для символов йцукен -> qwerty черновой, не полностью рабочий но для понимания принципа - вполне jsfiddle.net/ebvvf3w9
test test: вопрос с буквами и другими символами решается через parseInt(), а проверку через 10 >= , <= 1000 , просто как я писал ранее я показывал общий принцип, а не окончательное решение.
Rostyk Ice: так там нет обработчика ввода там есть принцип. Вот пример с обработкой поля не лету по мере ввода: jsfiddle.net/y71d71cj/1 Просто если вы поймете принцип вы сможете его переиспользовать, а готовое решение вы можете просто применить не понимая как оно работает.
Савелий Красовский: они нужны так как веб пытается развивать типографику во всех аспектах в том числе и в этом. С русским языком везде не очень хорошо в веб, вспомнить те же даты, по этой причине есть рекомендация что если хотите делать переносы, то лучше оформлять их вручную, а не использовать "механизмы" css, так как пока, как вы верно заметили, они не на высоте относительно правил русского языка.
Как вариант можно оперировать
html[lang="en"]{
...
}
html[lang="ru"]{
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
}
...