日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GO随笔-表单验证

發布時間:2025/3/19 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GO随笔-表单验证 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

新發現:r.Form里面包含了所有請求的參數,比如URL中query-string、POST的數據、PUT的數據,所有當你在URL的query-string字段和POST沖突時,會保存成一個slice,里面存儲了多個值
舉個例子:

<form action="/login?username=go" method="post">//get方法傳遞username=go 用戶名:<input type="text" name="username">//用post方法傳遞username

在提交表單后,打印r.Form

fmt.Println(r.Form);

得到

map[username:[postname go]

發生沖突的字段,值會被保存成為slice。
在取值的時候有兩種方法。
r.Form可以取到鍵所對應的全部值。但如果鍵不存在則會報錯。一般單選框或復選框,在不選中的情況下,form表單根本不會提交這些字段,所以很容易出現r.Form獲取鍵不存在的字段。
r.Form.GET只能夠拿到字段中的第一個值。如果鍵不存在,不會報錯,會返回空值。
對比不難發現,一般單選框和復選框等字段需要r.Form.GET方法獲取,而會出現多值的字段則需要用r.Form的方式獲取。


言歸正傳,這次想說一些關于表單驗證的方法。表單驗證一般前端后端都會做,不過區別是,“前端防君子,后端防小人”。

必填字段

if len(r.Form["username"][0])==0{//為空的處理 }

數字

getint,err:=strconv.Atoi(r.Form.Get("age"))//字符串轉整 if err!=nil{//數字轉化出錯了,那么可能就不是數字 }//接下來就可以判斷這個數字的大小范圍了 if getint >100 {//太大了 }

或是使用正則

if m, _ := regexp.MatchString("^[0-9]+$", r.Form.Get("age")); !m {return false }

還有很多驗證,都有不止一種方法能夠達到驗證效果,不再一一贅述了。

總結

以上是生活随笔為你收集整理的GO随笔-表单验证的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。