core/validators/password.go
2024-05-10 13:17:18 +07:00

29 lines
507 B
Go

package validators
import (
regexp "github.com/wasilibs/go-re2"
"github.com/go-playground/validator/v10"
)
func regPassword(v *XValidator) {
v.validator.RegisterValidation("password", func(fl validator.FieldLevel) bool {
tests := []string{
`[a-z]`,
`[A-Z]`,
`[\d]`,
`[@$!%*?&]`,
`[A-Za-z\d@$!%*?&]`,
`.{8,}`,
}
password := fl.Field().String()
for _, test := range tests {
t, _ := regexp.MatchString(test, password)
if !t {
return false
}
}
return true
})
}