проблемы в том, что у меня в маске ограниченный набор валидных символов
А у тебя - очень большой набор (точки, функциональные клавиши и т.д.). соответственно, чотбы их пропускать во всех бразерах надо писать очень сложные правила проверки...
У меня простые правила проверки, так как мне надо пропускать небольшое кол-во кодов. Остальные обрубаются.
Тебе придётся писать сложные разветвлённые правила на кучу кодов клавиш.
Проверка кодов у меня стоит в функции "P" (ну и делы с бэкспейсами проверяются дополнительно в onkeydown).