Web Analytics

validate

⭐ 59 stars Japanese by benmyrgorod

validate

Build Status codecov Go Report Card GoDoc GitHub release License

パッケージvalidateはタグに基づいてGoの構造体および型を再帰的に検証します。 サブ構造体、マップ、スライス、配列、ポインタの検証を行うための強力な構文を提供します。パッケージはカスタム検証メソッドの実行も可能です。

このパッケージを使用して、構造体の内容が必要な形式であることを確認してください。 例えば、validateパッケージはYAMLやJSONのアンマーシャリング時に便利です。

インストール

   go get gopkg.in/dealancer/validate.v2
   ``
  • プロジェクトにvalidateパッケージをインポートします。
`go import "gopkg.in/dealancer/validate.v2" `

種類

このパッケージは多種多様な型をサポートしています。

  • ほとんどの組み込み型:
  • intint8int16int32int64
  • uintuint8uint16uint32uint64
  • float32float64
  • uintptr
  • string
  • 別名型:
  • time.Duration
  • byteuint8
  • runeint32
  • 例:type Enum string
  • 複合型:
  • 構造体(Struct)
  • マップ(Map)
  • スライス(Slice)
  • 配列(Array)
  • ポインタ(Pointer)

バリデータ

このパッケージは次のバリデータを提供します。

  • eq(等しい)、ne(等しくない)、gt(より大きい)、lt(より小さい)、gte(以上)、lte(以下)バリデータは、数値の数値的値を比較するか、文字列、マップ、スライス、配列の要素数を比較します。
  • empty バリデータは、文字列、マップ、スライス、配列が(空であるか)空でないかをチェックします。
  • nil バリデータは、ポインタが(nilであるか)nilでないかをチェックします。
  • one_of バリデータは、数値または文字列が指定された要素のいずれかを含むかをチェックします。
  • format バリデータは、文字列が次のいずれかの形式であるかをチェックします:alphaalnumalpha_unicodealnum_unicodenumericnumberhexadecimalhexcolorrgbrgbahslhslaemailurluriurn_rfc2141filebase64base64urlisbnisbn10isbn13eth_addrbtc_addrbtc_addr_bech32uuiduuid3uuid4uuid5asciiascii_printdataurilatitudelongitudessnipv4ipv6ipcidrv4cidrv6cidrmachostnamehostname_rfc1123fqdnurl_encodeddirpostcode

演算子

以下の演算子が使用されます。優先度の高い順にリストされています。

  • [](ブラケット)はマップのキーを検証するために使用されます。
  • >(大なり記号)はマップ、スライス、配列の値を検証するか、ポインタの参照外しに使用されます。
  • &(アンパサンド)は、AND論理を使用して複数のバリデータを実行するために使用されます。
  • |(縦棒)は、OR論理を使用して複数のバリデータを実行するために使用されます。
  • =(等号)は、バリデータの種類と値を区切るために使用されます。
  • ,(コンマ)は、バリデータに複数のトークンを指定するために使用されます(例:one_of)。

使用方法

go type Registration struct { // Username should be between 3 and 25 characters and in alphanumeric unicode format Username string validate:"gte=3 & lte=25 & format=alnum_unicode"

// Email should be empty or in the email format Email string validate:"empty=true | format=email"

// Password is validated using a custom validation method Password string

// Role should be one of "admin", "publisher", or "author" Role string validate:"one_of=admin,publisher,author"

// URLs should not be empty, URLs values should be in the url format URLs []string validate:"empty=false > format=url"

// Retired (pointer) should not be nil Retired *bool validate:"nil=false"

// Some complex field with validation Complex []map[*string]int validate:"gte=1 & lte=2 | eq=4 > empty=false [nil=false > empty=false] > ne=0" }

// Custom validation func (r Registration) Validate() error { if !StrongPass(r.Password) { return errors.New("Password should be strong!") }

return nil }

type Registrations struct { r []Registration validate:"gte=2" // There should be at least two registrations }

go registrations := Registrations{ r: []Registration{ Registration{ Username: "admin", }, }, }

if err := validate.Validate(®istrations); err != nil { panic(err) } ``

完全なリファレンスについては、GoDoc を参照してください。

クレジット

このプロジェクトは、Vibe Coding ツールが存在する前に Ben Myrgorod によって書かれました。go-playground/validator に触発されています。

--- Tranlated By Open Ai Tx | Last indexed: 2026-07-02 ---