diff options
| -rw-r--r-- | utils/math/math.go | 8 | ||||
| -rw-r--r-- | utils/validators/tags.go | 8 | ||||
| -rw-r--r-- | utils/validators/users.go | 31 |
3 files changed, 47 insertions, 0 deletions
diff --git a/utils/math/math.go b/utils/math/math.go new file mode 100644 index 0000000..01035b9 --- /dev/null +++ b/utils/math/math.go @@ -0,0 +1,8 @@ +package math + +func GCD(a, b int) int { + for b != 0 { + a, b = b, a%b + } + return a +} diff --git a/utils/validators/tags.go b/utils/validators/tags.go new file mode 100644 index 0000000..8fe8ab9 --- /dev/null +++ b/utils/validators/tags.go @@ -0,0 +1,8 @@ +package validators + +import "regexp" + +func IsValidTagName(tag string) bool { + match, _ := regexp.MatchString(`^[a-zA-Z0-9_]+$`, tag) + return match +} diff --git a/utils/validators/users.go b/utils/validators/users.go new file mode 100644 index 0000000..70ec34d --- /dev/null +++ b/utils/validators/users.go @@ -0,0 +1,31 @@ +package validators + +import ( + "regexp" + "slices" + "strings" +) + +func IsValidUsername(username string) bool { + match, _ := regexp.MatchString(`^[a-zA-Z0-9_-]+$`, username) + return match +} + +func IsReservedUsername(username string) bool { + reserved := []string{ + "admin", "administrator", "mod", "moderator", "janitor", + "api", "www", "mail", "email", "support", "help", + "about", "contact", "privacy", "terms", "tos", + "null", "undefined", "system", "bot", "guest", + "login", "register", "signup", "signin", "logout", + "profile", "settings", "shifoo", "deleted", + } + + lowerUsername := strings.ToLower(username) + return slices.Contains(reserved, lowerUsername) +} + +func IsValidEmail(email string) bool { + match, _ := regexp.MatchString(`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`, email) + return match +} |
