日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

GO随笔-表单验证

發布時間:2025/3/19 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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随笔-表单验证的全部內容,希望文章能夠幫你解決所遇到的問題。

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