Этот вопрос больше связан с практиками UX, чем с самим интерфейсом.Я считаю, что перед проверкой сервера должны быть выполнены проверки внешнего интерфейса.
Вы не должны проверять, и вам определенно не следует изменять какие-либо значения во время заполнения формы пользователем.Однако обычной практикой является проверка полей на размытие.Это когда вы можете изменить значения полей.Однако я буду очень осторожен с этим, чтобы не запутать пользователя.Таким образом, удаление пробелов и т. Д. Не должно быть проблемой, но следует избегать агрессивных входных изменений.
Также попробуйте маскирование ввода для операций, подобных форматам даты.
Проверьте, например, эту библиотеку https://nosir.github.io/cleave.js/
РЕДАКТИРОВАТЬ:
В случае изменения значений перед отправкой их в бэкэнд, это совершенно нормально.Хорошей практикой является наличие некоторого слоя отображения, который будет отображать между формами пользовательского интерфейса и DTO, необходимыми для бэкэнда.Пользовательский интерфейс должен быть ориентирован на пользовательский опыт, поэтому в более сложных сценариях потребуется почти дополнительная работа почти каждый раз