Все зависит от причины проверки.
Проверка JS обычно намного проще реализовать, поскольку она не требует обходов сервера, но она также бесполезна для проверки безопасности и согласованности, поскольку можно отключить JavaScript или подделать сообщение http.
Я бы использовал оба.
Javascript на клиенте, чтобы помочь пользователям заполнить форму полностью и правильно, а затем на основе сервера для безопасности.
Преимущество этого заключается в том, что пользователю не нужно заходить на сервер, прежде чем увидеть, что нужно исправить, и проверка на стороне сервера не должна быть такой ясной, как только у пользователей, которые либо не имеют JavaScript, либо намеренно пытаются обойти проверки увидит эти сообщения об ошибках.