跟我一起学习GO语言013-表单操作-数据验证

上一节我们讲了关于简单的表单的概念和简单的例子,本节我们来看表单输入的验证,我们来看看常见的验证都有那些,然后我们还是一样,通过例子来演示。

首先我们看看表单的验证起什么作用的,为什么需要表单验证呢?

表单的验证其实就是验证数据的合规性,过滤输入中的错误及危险,我们常见的某某网站被入侵了,某某网站漏洞,总结为两点数据合规性、安全。

通过GO语言来实现上面的输入,我们看看怎么验证呢?

必填字段:不管在那种语言中判断必填,我们只要获取值,判断值的长度就可以判断是否为填写。

 if len(r.Form[“name”][0]==0){

//为空的处理,提示

       fmt.Println(“姓名不能为空!请输入!”)    

}

数字验证:我们看看年龄的验证是怎样的。

getint,err:=stroconv.Atoi(r.Form.Get(“age”))//转换年龄字段为正整数int型

if err!=nil{

       //错误不为空,转换失败,那么可能就不是数字

}

if getint>130{

       //如果输入的岁数大于130岁,当今没有几个能活到这么大岁数,所以输入数值太大。也就是通过验证来控制数值的范围。

}

单选按钮:男女选择其一的验证

当然我们采用下拉菜单的方式也一样可以的

slice:=[]int{1,2}

for _, v:=rangeslice{

       if v ==r.Form.Get(“gender”){

       Return true

}

}

return false

日期和时间验证:验证生日是否有效或者控制某个时间段等;在GO语言中有一个time的处理包,我们可以把用户输入的年月日转化成相应的时间,然后根据要求验证。

if PbBirthday !="" {

    birthday :=strings.Split(order.PbBirthday,"-")


    if len(birthday) < 3 {

        return nil,errors.New("出生日期格式解析错误")

    }

} else {

    return nil,errors.New("出生日期为空")

}

身份证号:我们知道身份证有15位和18位,我们看看怎么验证?这里我们采用正则表达式验证方式来验证。

//验证15为身份证

ifm,_=:=regexp.MatchString(‘^(\d{15})$’,r.Form.Get(“UserCard”));!m{

       return false

}

//验证18位身份证,前17位为数字,最后一位是效验码,可能为数字或字符X。

ifm,_=:=regexp.MatchString(‘^(\d{17})([0-9]|X)$’,r.Form.Get(“UserCard”));!m{

       return false

}

手机号:我们也通过正则表达式验证。

ifm,_=:=regexp.MatchString(‘^(1[3|4|5|8][0-9]\d{4,8})$’,r.Form.Get(“mobile”));!m{

       return false

}。

邮箱验证:邮箱验证使用非常广泛,我们还是采用正则表达式来验证

ifm,_=:=regexp.MatchString(‘^([\w\.\_]{2,10})@(\w{1,}).([a-z]{2,4})$’,r.Form.Get(“email”));!m{

       fmt.Println(“no”)

}else{

       fmt.Println(“yes”)

}

下拉菜单验证:用户选择自己的学历。

slice:=[string]{” JuniorCollege”, ” HighSchool”, ” JuniorMiddleSchool”, ” Undergraduate”}

for _,v:=reangesilce{

       if v==r.Form.Get(“Education”){

              return true

}

}

return false

最后我们来看看多选按钮的验证:用户选择自己的爱好。

篮球

足球

网球

乒乓球

橄榄球

slice:=[string]{” Basketball”, ” Football”, ” Tennis”, ” TableTennis”,” Rugby”}

a:=slice_diff(r.Form[“like”],slice)

if a==nil{

       return true

}

return false

以上就是我们今天所讲的内容,下一节我们继续讲表单中我们要学习的内容。老话重提,实践是检验真理的一种很恰当的方式也是最直接的方式。

请开始你的表演,践行,践行,再践行。未完待续。。。

你可能感兴趣的:(跟我一起学习GO语言013-表单操作-数据验证)