<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] # 驗證函數 StructTag 可用的驗證函數: * `Required`不為空,即各個類型要求不為其零值 * `Min(min int)`最小值,有效類型:`int`,其他類型都將不能通過驗證 * `Max(max int)`最大值,有效類型:`int`,其他類型都將不能通過驗證 * `Range(min, max int)`數值的范圍,有效類型:`int`,他類型都將不能通過驗證 * `MinSize(min int)`最小長度,有效類型:`string slice`,其他類型都將不能通過驗證 * `MaxSize(max int)`最大長度,有效類型:`string slice`,其他類型都將不能通過驗證 * `Length(length int)`指定長度,有效類型:`string slice`,其他類型都將不能通過驗證 * `Alpha`alpha字符,有效類型:`string`,其他類型都將不能通過驗證 * `Numeric`數字,有效類型:`string`,其他類型都將不能通過驗證 * `AlphaNumeric`alpha 字符或數字,有效類型:`string`,其他類型都將不能通過驗證 * `Match(pattern string)`正則匹配,有效類型:`string`,其他類型都將被轉成字符串再匹配(fmt.Sprintf(“%v”, obj).Match) * `AlphaDash`alpha 字符或數字或橫杠`-_`,有效類型:`string`,其他類型都將不能通過驗證 * `Email`郵箱格式,有效類型:`string`,其他類型都將不能通過驗證 * `IP`IP 格式,目前只支持 IPv4 格式驗證,有效類型:`string`,其他類型都將不能通過驗證 * `Base64`base64 編碼,有效類型:`string`,其他類型都將不能通過驗證 * `Mobile`手機號,有效類型:`string`,其他類型都將不能通過驗證 * `Tel`固定電話號,有效類型:`string`,其他類型都將不能通過驗證 * `Phone`手機號或固定電話號,有效類型:`string`,其他類型都將不能通過驗證 * `ZipCode`郵政編碼,有效類型:`string`,其他類型都將不能通過驗證 # 函數驗證 ~~~ type User struct { Name string Age int } func (this *AdminController) Post(){ fmt.Println("=============tttt===============") u := User{"man", 240} valid := validation.Validation{} valid.Required(u.Name, "name") valid.MaxSize(u.Name, 15, "nameMax") valid.Range(u.Age, 0, 18, "age") // 定制錯誤信息 minAge := 18 valid.Min(u.Age, minAge, "age").Message("少兒不宜!") // 錯誤信息格式化 valid.Min(u.Age, minAge, "age").Message("%d不禁", minAge) if valid.HasErrors() { // 如果有錯誤信息,證明驗證沒通過 // 打印錯誤信息 for _, err := range valid.Errors { fmt.Println("---錯誤的key---", err.Key) fmt.Println(err.Key, err.Message) } } // or use like this if v := valid.Max(u.Age, 140, "age"); !v.Ok { fmt.Println("---錯誤的key---", v.Error.Key) fmt.Println(v.Error.Key, v.Error.Message) } fmt.Println("=============tttt===============") this.Ctx.WriteString("-------test----------") } ~~~ # struct驗證 ~~~ // 驗證函數寫在 "valid" tag 的標簽里 // 各個函數之間用分號 ";" 分隔,分號后面可以有空格 // 參數用括號 "()" 括起來,多個參數之間用逗號 "," 分開,逗號后面可以有空格 // 正則函數(Match)的匹配模式用兩斜杠 "/" 括起來 // 各個函數的結果的 key 值為字段名.驗證函數名 type user struct { Id int Name string `valid:"Required;Match(/^Bee.*/)"` // Name 不能為空并且以 Bee 開頭 Age int `valid:"Range(1, 140)"` // 1 <= Age <= 140,超出此范圍即為不合法 Email string `valid:"Email; MaxSize(100)"` // Email 字段需要符合郵箱格式,并且最大長度不能大于 100 個字符 Mobile string `valid:"Mobile"` // Mobile 必須為正確的手機號 IP string `valid:"IP"` // IP 必須為一個正確的 IPv4 地址 } // 如果你的 struct 實現了接口 validation.ValidFormer // 當 StructTag 中的測試都成功時,將會執行 Valid 函數進行自定義驗證 func (u *user) Valid(v *validation.Validation) { if strings.Index(u.Name, "admin") != -1 { // 通過 SetError 設置 Name 的錯誤信息,HasErrors 將會返回 true v.SetError("Name", "名稱里不能含有 admin") } } func (this *AdminController) Post() { fmt.Println("=============tttt===============") valid := validation.Validation{} u := user{Name: "Beego", Age: 2, Email: "dev@beego.me"} b, err := valid.Valid(&u) if err != nil { // handle error,這個一般沒有 fmt.Println("有錯誤----111-----") } if !b { // validation does not pass // blabla... for _, err := range valid.Errors { fmt.Println(err.Key, err.Message) fmt.Println("有錯誤----222-----") } } fmt.Println("=============tttt===============") this.Ctx.WriteString("-------test----------") } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看