第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何像 Javascript 的 Joi 一樣驗證 Go 對象數(shù)據(jù)?

如何像 Javascript 的 Joi 一樣驗證 Go 對象數(shù)據(jù)?

Go
呼如林 2023-05-22 17:18:44
我使用Joi在 JavaScript 中執(zhí)行對象模式和數(shù)據(jù)驗證。在 Golang 中,我知道如何進行模式驗證,但我如何進行數(shù)據(jù)驗證?Golang 是否有 Joi 等價物?我知道 Godog,但它還沒有達到 1.0。
查看完整描述

1 回答

?
拉莫斯之舞

TA貢獻1820條經(jīng)驗 獲得超10個贊

嘗試 ozzo-validation?

package main


import (

? ? "fmt"

? ? "regexp"


? ? "github.com/go-ozzo/ozzo-validation"

? ? "github.com/go-ozzo/ozzo-validation/is"

)


type Address struct {

? ? Street string

? ? City? ?string

? ? State? string

? ? Zip? ? string

}


func (a Address) Validate() error {

? ? return validation.ValidateStruct(&a,

? ? ? ? // Street cannot be empty, and the length must between 5 and 50

? ? ? ? validation.Field(&a.Street, validation.Required, validation.Length(5, 50)),

? ? ? ? // City cannot be empty, and the length must between 5 and 50

? ? ? ? validation.Field(&a.City, validation.Required, validation.Length(5, 50)),

? ? ? ? // State cannot be empty, and must be a string consisting of two letters in upper case

? ? ? ? validation.Field(&a.State, validation.Required, validation.Match(regexp.MustCompile("^[A-Z]{2}$"))),

? ? ? ? // State cannot be empty, and must be a string consisting of five digits

? ? ? ? validation.Field(&a.Zip, validation.Required, validation.Match(regexp.MustCompile("^[0-9]{5}$"))),

? ? )

}


func main() {

? ? a := Address{

? ? ? ? Street: "123",

? ? ? ? City:? ?"Unknown",

? ? ? ? State:? "Virginia",

? ? ? ? Zip:? ? "12345",

? ? }


? ? err := a.Validate()

? ? fmt.Println(err)

? ? // Output:

? ? // Street: the length must be between 5 and 50; State: must be in a valid format.

}


查看完整回答
反對 回復(fù) 2023-05-22
  • 1 回答
  • 0 關(guān)注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號