zoukankan      html  css  js  c++  java
  • 第十一单元 beego验证

    第十一单元 beego验证
    
    一、原生正则使用
    //初始化结构体对象的方法
    func Compile(expr string) (*Regexp, error)
    //和Compile函数相似,但是该方法支持POSIX协议,可以支持类似`egrep`的语法
    func CompilePOSIX(expr string) (*Regexp, error)
    
    //Must系列函数和上面两个函数相似,但是不会返回error,如果有异常直接panic
    func MustCompile(str string) *Regexp
    
    //在字符串中是否匹配到re定义的字符串,匹配返回true
    func (re *Regexp) MatchString(s string) bool
    
    
    //结构体方法.常用的几个
    //在字符串s中查找完全匹配正则表达式re的字符串.如果匹配到就停止不进行全部匹配,如果匹配不到就输出空字符串
    func (re *Regexp) FindString(s string) string
    
    //在字符串s中匹配re表达式,n表示匹配的次数,-1表示匹配整个字符串。返回字符串切片
    func (re *Regexp) FindAllString(s string, n int) []string
    
    //在src中匹配re,并替换为repl,该种方式中repl中的$符号会展开实际的变量,通常用在回溯查找中
    func (re *Regexp) ReplaceAllString(src, repl string) string
    
    
     代码示例
    
    r, _ := regexp.Compile("[a-z]")
    	// fmt.Println(r.MatchString("adddd"))
    
    	//fmt.Println(r.FindString("abd123"))
    	fmt.Println(r.FindAllString("abd123", -1))
    	fmt.Println(r.ReplaceAllString("abd1234", "*"))
    
    
    二、beego validation验证使用
    
    
    package controllers
    
    import (
    	"1803a_chapter9/models"
    	"fmt"
    	"strconv"
    
    	"github.com/astaxie/beego"
    	"github.com/astaxie/beego/orm"
    	"github.com/astaxie/beego/validation"
    )
    
    type MemberController struct {
    	beego.Controller
    }
    
    //会员信息添加
    func (c *MemberController) AddMember() {
    
    	reJson := make(map[string]interface{})
    	c.Data["json"] = reJson
    	defer c.ServeJSON()
    	o := orm.NewOrm()
    	var member models.Member
    	member.Name = c.GetString("name")
    	member.Email = c.GetString("email")
    	member.Age, _ = c.GetInt("age", 18)
    
    	valid := validation.Validation{}
    	valid.Required(member.Name, "Name").Message("用户名不能为空!")
    	valid.MinSize(member.Name, 5, "Name").Message("用户名必须5个字符以上")
    	valid.Email(member.Email, "Email").Message("邮箱格式不正确")
    	valid.Range(member.Age, 8, 20, "Age").Message("年龄不在范围内")
    	
    
    	if valid.HasErrors() {
    		reJson["status"] = "failed"
    		errMsg := []string{}
    		for _, error := range valid.Errors {
    			errMsg = append(errMsg, error.Message)
    
    		}
    		reJson["message"] = errMsg
    		return
    	}
    
    	_, err := o.Insert(&member)
    	if err == nil {
    		reJson["status"] = "ok"
    		reJson["message"] = "添加成功"
    
    	} else {
    		reJson["status"] = "faild"
    		reJson["message"] = "添加失败"
    
    	}
    
    }
    

      

  • 相关阅读:
    Html禁止粘贴 复制 剪切
    表单标签
    自构BeanHandler(用BeansUtils)
    spring配置中引入properties
    How Subcontracting Cockpit ME2ON creates SD delivery?
    cascadia code一款很好看的微软字体
    How condition value calculated in sap
    Code in SAP query
    SO Pricing not updated for partial billing items
    Javascript learning
  • 原文地址:https://www.cnblogs.com/xfsong/p/13388933.html
Copyright © 2011-2022 走看看