美文网首页
跟我一起学习GO语言013-表单操作-数据验证

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

作者: 搬砖人1314 | 来源:发表于2019-10-13 08:42 被阅读0次

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

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

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

    通过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岁,当今没有几个能活到这么大岁数,所以输入数值太大。也就是通过验证来控制数值的范围。

    }

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

    <input type=”radio”name=”gender” value=”1”> 男

    <input type=”radio”name=”gender” value=”2”> 女

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

    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”)

    }

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

    <select  name=” Education”>

    <option value=”JuniorCollege”>大专</option>

    <option value=”HighSchool”>高中</option>

    <option value=”JuniorMiddleSchool”>初中</option>

    <option value=”Undergraduate”>本科</option>

    </select>

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

    for _,v:=reangesilce{

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

                  return true

    }

    }

    return false

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

    <input type=”checkbox”name=”like” value=”Basketball”> 篮球

    <input type=”checkbox”name=”like” value=”Football”> 足球

    <input type=”checkbox”name=”like” value=”Tennis”> 网球

    <input type=”checkbox”name=”like” value=” TableTennis”> 乒乓球

    <input type=”checkbox”name=”like” value=” Rugby”> 橄榄球

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

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

    if a==nil{

           return true

    }

    return false

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

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

    相关文章

      网友评论

          本文标题:跟我一起学习GO语言013-表单操作-数据验证

          本文链接:https://www.haomeiwen.com/subject/pdrhmctx.html