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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Go gin 驗(yàn)證輸入以排除子字符串

Go gin 驗(yàn)證輸入以排除子字符串

Go
幕布斯7119047 2022-07-18 16:06:29
我想確保輸入不包含子字符串“organization”、“forbidden”并且不等于“foo”和“bar”。// cmd/httpd/handler/item_post.gopackage handlerimport (  "net/http"  "dummy-project/itemdata"  "github.com/gin-gonic/gin")func ItemPost() gin.HandlerFunc {  return func(c *gin.Context) {    requestBody := itemdata.Item{}    if err := c.ShouldBindJSON(&requestBody); err != nil {        c.JSON(http.StatusBadRequest, gin.H{"message": err.Error()})        return    }    // insert Item object to DB    c.JSON(http.StatusCreated, requestBody)  }}下面是我用于 POST 請(qǐng)求和插入數(shù)據(jù)庫記錄的結(jié)構(gòu): // itemdata/item_data.go package itemdata// Item struct used for POST request and inserting new itemtype Item struct {   ID           string `bson:"_id" json:"id"`   Name string `bson:"name" json:"name" binding:"required,excludesrune=organizationforbidden,ne=foo,ne=bar"`}當(dāng)我插入這些值時(shí): foo -> 排除符文驗(yàn)證失敗bar -> ne 上的驗(yàn)證失敗組織 -> 排除符文驗(yàn)證失敗orgfor -> 排除符文驗(yàn)證失敗禁止 -> 排除符文驗(yàn)證失敗酒吧 -> 成功我想要什么: foo -> 失敗酒吧->失敗組織 -> 失敗orgfor -> 成功,因?yàn)榻M織和禁止詞不完整禁止 -> 失敗BAR -> 失敗我如何使用 go gin 和 go 驗(yàn)證器來實(shí)現(xiàn)這一點(diǎn)?謝謝
查看完整描述

1 回答

?
MM們

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊

看起來您正在嘗試排除整個(gè)字符串,因此excludes驗(yàn)證會(huì)比excludesrune. Go 中的“符文”是一個(gè) Unicode 代碼點(diǎn),您可能更習(xí)慣于僅調(diào)用“字符”,因此您的書面驗(yàn)證可能會(huì)導(dǎo)致任何包含字母的字符串失敗o。


試試這個(gè):


   Name string `bson:"name" json:"name" binding:"required,excludes=organization,excludes=forbidden,ne=foo,ne=bar"`

編輯:如評(píng)論中所述,這不符合您禁止使用大寫版本的被阻止字符串的要求。據(jù)我所知,您需要使用自定義驗(yàn)證器執(zhí)行此操作:


func caseInsensitiveExcludes(fl validator.FieldLevel) bool {

    lowerValue := strings.ToLower(fl.Field().String())

   

    if strings.Contains(lowerValue, fl.Param()) {

        return false

    }


    return true

}


validate.RegisterValidation("iexcludes", caseInsensitiveExcludes)

然后試試這個(gè)字段定義:


   Name string `bson:"name" json:"name" binding:"required,iexcludes=organization,iexcludes=forbidden,ne=foo,ne=bar"`


查看完整回答
反對(duì) 回復(fù) 2022-07-18
  • 1 回答
  • 0 關(guān)注
  • 116 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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