Как уже упоминалось, вы должны сохранять дублирование, так как проверка на стороне клиента должна помочь приложению быстрее реагировать, чтобы помочь пользователю, но настоящая проверка на стороне сервера, так как вы никогда не должны доверять чему-либо переданному. до тех пор, пока это не будет подтверждено. Вы, вероятно, проведете более обширную проверку на стороне сервера, особенно если есть необходимость сверяться с источником данных, например, является ли уникальное имя пользователя на стороне сервера, но достаточно ли длинное имя пользователя или адрес электронной почты, может быть сделано на стороне клиента и на стороне сервера.
Я склонен помещать комментарии, когда есть дублирование, особенно если я использую регулярное выражение, чтобы убедиться, что то, что изменяется в одном, изменяется в другом.
Хорошие юнит-тесты помогут гарантировать, что эти два всегда будут синхронизированы.