gpt4 book ai didi

go - 如何使用 go-playground/validator.v9 验证 time.Time 值?

转载 作者:行者123 更新时间:2023-12-02 02:33:14 24 4
gpt4 key购买 nike

我有一个要在我的结构上验证的字符串,它是可选的。

在验证区是否可以验证time.Time?或者,如果需要一些正则表达式,我该如何在验证部分执行?

DOB           time.Time          `json:"dob,omitempty" bson:"dob,omitempty" validate:"omitempty"`

它将由用户通过 JSON 传入,我想确认用户传入的格式是否正确:

"2001-03-24T16:21:21.269Z"

最佳答案

也许这能帮上忙?这是我为 ISO8601 格式日期时间所做的

CreatedAt           string  `json:"created_at" validate:"ISO8601date"

func IsISO8601Date(fl validator.FieldLevel) bool {
ISO8601DateRegexString := "^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d{1,9})?(?:Z|[+-][01]\\d:[0-5]\\d)$"
ISO8601DateRegex := regexp.MustCompile(ISO8601DateRegexString)
return ISO8601DateRegex.MatchString(fl.Field().String())
}

validate = validator.New()
_ = validate.RegisterValidation("ISO8601date", IsISO8601Date)

关于go - 如何使用 go-playground/validator.v9 验证 time.Time 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64740816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com