Тут 2 пути, и оба со своими плюсами и минусами:
1. Дать ввести человеку что угодно, и onchage проверять введеное, если не нравиться - заставить человека исправить данные. Это самый простой путь.
2. Создать полностью свой элемент input, где будете перехватывать все обращения к клавиатуре и мышке и тачу и еще неизвестным hid, и создавать таким образом свой собственный редактор строки. Это очень громоздко, но будет работать именно так, как Вам нужно.
Так что с учетом затрат, определитесь в необходимом и достаточном конечном результате.