Initial commit: Эфир мессенджер
This commit is contained in:
52
internal/pkg/validator/validator.go
Normal file
52
internal/pkg/validator/validator.go
Normal file
@@ -0,0 +1,52 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user