Bertolomych пишет:Но у этого решения есть один существенный недостаток: если ввести строку, а потом попытаться отредактировать ее середину, то ничего не выйдет - при нажатии клавиши, курсор смещается в конец строки, и именно там и вводит символ
Для того чтобы осуществлять динамическую обработку данных вводимых в текстовое поле на основе регулярного выражения определяющего шаблон допустимых символов - необходимо добавить предварительное сохранение текущей позиции курсора и его возвращения в исходное положение после произведения фильтрации Так как механизмы получения и установки позиции курсора в различных браузерах отличаются - из-за того что в них имеется различный принцип работы и программное взаимодейсвие с объектом текущего выделения - то необходимо использовать универсальную кросс-браузерную функцию описанную например здесь
http://kurilka[dot]co[dot]ua/archives/getcaretpos/ Далее вам будет необходимо только несколько модифицировать текущий механизи фильтрации - а именно добавить в него получение и установку положения курсора в соответсвующий момент времени Кроме того следует выделить JS-код из on_event-блока в отдельную функцию и использовать именно ее вызов в возможной передачей текущего DOM-объекта - это нужно для избежания синтаксических ошибок связанных с различием уровней экранирования HTML и JS-кода