欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

GO随笔-表单验证

发布时间:2025/3/19 28 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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随笔-表单验证的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。