go-playground / validator

:100:Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving
MIT License
16.98k stars 1.33k forks source link

Bug: `postcode_iso3166_alpha2_field` validation broken in v10.21.0 #1314

Open mikepilat opened 2 months ago

mikepilat commented 2 months ago

Package version eg. v9, v10:

v10.22.0

Issue, Question or Enhancement:

This PR released with v10.21.0 broke postcode_iso3166_alpha2_field validations.

I believe this open PR would fix it, but it has not been merged.

Code sample, to showcase or reproduce:

package main

import (
        "fmt"

        "github.com/go-playground/validator/v10"
)

type Example struct {
        PostCode    string `validate:"required,postcode_iso3166_alpha2_field=CountryCode"`
        CountryCode string `validate:"required,iso3166_1_alpha2"`
}

func main() {
        validate := validator.New(validator.WithRequiredStructEnabled())

        ex := Example{
                CountryCode: "US",
                PostCode:    "12345",
        }

        err := validate.Struct(ex)
        fmt.Println(err)
}

Under v10.22.0, this outputs:

Key: 'Example.PostCode' Error:Field validation for 'PostCode' failed on the 'postcode_iso3166_alpha2_field' tag

Under v10.20.0, the validation works as expected.