Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Siva-Karthi/64b68f7abe5507681043e5d1edbb16f5 to your computer and use it in GitHub Desktop.
Save Siva-Karthi/64b68f7abe5507681043e5d1edbb16f5 to your computer and use it in GitHub Desktop.
goValidatorProvideErrorOnJsonTags
package main
import (
"fmt"
"github.com/go-playground/validator"
"reflect"
"regexp"
"strings"
)
type Student struct {
Name string `json:"name" validate:"omitempty,noSplChars"`
}
func main() {
bob := &Student{
Name: "*^*(&^*&",
}
appValidator := validator.New()
_ = appValidator.RegisterValidation("noSplChars", validateNoSplChars)
appValidator.RegisterTagNameFunc(func(fld reflect.StructField) string {
name := strings.SplitN(fld.Tag.Get("json"), ",", 2)[0]
if name == "-" {
return ""
}
return name
})
err := appValidator.Struct(bob)
if err != nil{
validationErrors := err.(validator.ValidationErrors)
fmt.Println("validationErrors",validationErrors)
}
print("done")
}
func validateNoSplChars(fl validator.FieldLevel) bool {
stringField := fl.Field().String()
regex, _ := regexp.Compile("[a-zA-Z0-9].*$")
result := regex.MatchString(stringField)
return result
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment