25 lines
472 B
Go
25 lines
472 B
Go
package utils
|
|
|
|
import (
|
|
"unicode"
|
|
|
|
"github.com/go-playground/validator/v10"
|
|
)
|
|
|
|
func PasswordValidator(fl validator.FieldLevel) bool {
|
|
password := fl.Field().Interface().(string)
|
|
|
|
var hasUpper, hasNumber, hasLower = false, false, false
|
|
|
|
for _, c := range password {
|
|
if unicode.IsUpper(c) {
|
|
hasUpper = true
|
|
} else if unicode.IsLower(c) {
|
|
hasLower = true
|
|
} else if unicode.IsDigit(c) {
|
|
hasNumber = true
|
|
}
|
|
}
|
|
|
|
return hasUpper && hasNumber && hasLower
|
|
}
|