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"] = "添加失败"
    
    	}
    
    }
    

      

  • 相关阅读:
    全栈项目|小书架|服务器端-NodeJS+Koa2实现首页图书列表接口
    全栈项目|小书架|微信小程序-首页水平轮播实现
    全栈项目|小书架|微信小程序-登录及token鉴权
    全栈项目|小书架|微信小程序-项目结构设计分包
    Python学习第123天(Django回头看:模板控制语句、filter、simple_tag)
    Python学习第122天(Django回头看:视图函数、redirect、模板变量、过滤器)
    Python学习第121天(Django2的include使用)
    Python学习第120天(Django1和2之间的区别)
    Python学习第119天(练习)
    Python学习第119天(暂停)
  • 原文地址:https://www.cnblogs.com/xfsong/p/13388933.html
Copyright © 2011-2022 走看看