package validator import ( "regexp" "strings" "unicode" ) // ValidateLogin проверяет логин (только буквы, цифры, underscore, от 3 до 32 символов) func ValidateLogin(login string) bool { if len(login) < 3 || len(login) > 32 { return false } matched, _ := regexp.MatchString("^[a-zA-Z0-9_]+$", login) return matched } // ValidatePassword проверяет пароль (минимум 6 символов) func ValidatePassword(password string) bool { return len(password) >= 6 } // SanitizeString очищает строку от лишних пробелов func SanitizeString(s string) string { return strings.TrimSpace(s) } // ValidateDisplayName проверяет отображаемое имя (не более 100 символов) func ValidateDisplayName(name string) bool { return len(name) <= 100 } // ValidateBio проверяет биографию (не более 500 символов) func ValidateBio(bio string) bool { return len(bio) <= 500 } // IsValidUUID проверяет валидность UUID func IsValidUUID(uuid string) bool { matched, _ := regexp.MatchString("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", uuid) return matched } // ContainsOnlyPrintable проверяет, что строка содержит только печатаемые символы func ContainsOnlyPrintable(s string) bool { for _, r := range s { if !unicode.IsPrint(r) { return false } } return true }