В дополнение к тому, что упоминали другие, не забывайте проверять элементы, которые зависят друг от друга. То есть согласованность входных значений. Например, если пользователь вводит максимум и минимум, не просто сравнивают два значения независимо от их допустимых значений максимума и минимума, но также сверяют их друг с другом, чтобы убедиться, что введенные значения логически согласованы.
Для имен хостов вы можете проверить, что DNS возвращает IP-адрес. Если это не так, сообщите пользователю, но не обязательно отклоняйте имя хоста по этой причине. Возможно, пользователь предварительно настраивает то, чего еще не существует. Это зависит от конкретного применения.
То есть, помимо синтаксической достоверности, вы также можете проверить, что введенные значения являются значимыми и соответствуют друг другу.
Еще одна вещь, которую вы можете сделать, если сделаете все возможное, это разрешить ввод цифр только в числовых полях, разрешить только цифры и "-" в полях кредитной карты или номера телефона и т. Д.
И всегда, всегда разрешайте пользователю вводить данные в наиболее привычном формате, даже если впоследствии вам придется удалять лишние данные. Например, пусть пользователь (но не требует от пользователя) ввести номер телефона 1-800-555-1212, даже если вы позже удалите символы "-".