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 }) }