binding

package
v0.0.0-...-ac7d4c8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 19, 2023 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Bind

func Bind(ptr interface{}, m map[string]interface{}) *bind

map绑定器

func HttpBindCookie

func HttpBindCookie(r *http.Request, objectPtr interface{}) error

func HttpBindForm

func HttpBindForm(r *http.Request, objectPtr interface{}) error

func HttpBindHead

func HttpBindHead(r *http.Request, objectPtr interface{}) error

func HttpBindJSON

func HttpBindJSON(r *http.Request, objectPtr interface{}) error

func HttpBindQuery

func HttpBindQuery(r *http.Request, objectPtr interface{}) error

http数据自动绑定

func IsAccount

func IsAccount(val interface{}) bool

帐号规则(字母开头,只能包含字母、数字和下划线,长度在6~18之间) tag使用方法 account

func IsArrayRepeat

func IsArrayRepeat(val interface{}) bool

数组是否有重复

func IsDate

func IsDate(val interface{}) bool

日期 格式 2006-01-02 tag使用方法 date

func IsDatetime

func IsDatetime(val interface{}) bool

日期时间 格式 2006-01-02 15:04:05 tag使用方法 datetime

func IsDomain

func IsDomain(val interface{}) bool

domain tag使用方法 domain

func IsEmail

func IsEmail(val interface{}) bool

邮件 tag使用方法 email

func IsEq

func IsEq(val interface{}, arg string) bool

等于(对数字、字符、布尔类型有效) tag使用方法 eq=10

func IsGreatThan

func IsGreatThan(val interface{}, a float64) bool

大于(对数字类型有效) tag使用方法 gt=10

func IsGreatThanAndEqual

func IsGreatThanAndEqual(val interface{}, a float64) bool

大于等于(对数字类型有效) tag使用方法 gte=10

func IsHourMinute

func IsHourMinute(val interface{}) bool

时间

func IsIDNumber

func IsIDNumber(val interface{}) bool
公民身份证号
xxxxxx yyyy MM dd 375 0     十八位
xxxxxx   yy MM dd  75 0     十五位

地区:[1-9]\d{5}
年的前两位:(18|19|([23]\d))      1800-2399
年的后两位:\d{2}
月份:((0[1-9])|(10|11|12))
天数:(([0-2][1-9])|10|20|30|31) 闰年不能禁止29+

三位顺序码:\d{3}
两位顺序码:\d{2}
校验码:   [0-9Xx]

十八位:^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$
十五位:^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$

总:
(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)

tag使用方法 id-number

func IsIP

func IsIP(val interface{}) bool

IP地址(ip4和ip6均可) tag使用方法 ip

func IsIP4

func IsIP4(val interface{}) bool

IP4地址 tag使用方法 ip4

func IsIP6

func IsIP6(val interface{}) bool

IP6地址 tag使用方法 ip6

func IsIn

func IsIn(val interface{}, arg string) bool

在范围内(对数字、字符、布尔类型有效) tag使用方法 in=a|b|c,多个规则使用|分隔

func IsLen

func IsLen(val interface{}, l int) bool

长度验证(对数字、字符、切片类型有效) tag使用方法 len=10

func IsLessThan

func IsLessThan(val interface{}, a float64) bool

小于(对数字类型有效) tag使用方法 lt=10

func IsLessThanAndEuqal

func IsLessThanAndEuqal(val interface{}, a float64) bool

小于等于(对数字类型有效) tag使用方法 lte=10

func IsLuHn

func IsLuHn(val interface{}) bool

LUHN规则(银行卡号验证规则) tag使用方法 luhn

func IsMac

func IsMac(val interface{}) bool

MAC地址 tag使用方法 mac

func IsMatch

func IsMatch(val interface{}, arg string) bool

正则式处理 arg=正则表达式 tag使用方法 match=^\d+$ 注意:不要在正则式中间加:

func IsMax

func IsMax(val interface{}, l int) bool

最大长度度(对字符、数字、切片类型有效) tag使用方法 max=10

func IsMin

func IsMin(val interface{}, l int) bool

最小长度(对字符、数字、切片类型有效) tag使用方法 min=10

func IsMobile

func IsMobile(val interface{}) bool
  • 验证所给手机号码是否符合手机号的格式.
  • 移动: 134、135、136、137、138、139、150、151、152、157、158、159、182、183、184、187、188、178(4G)、147(上网卡);
  • 联通: 130、131、132、155、156、185、186、176(4G)、145(上网卡)、175;
  • 电信: 133、153、180、181、189 、177(4G);
  • 卫星通信: 1349
  • 虚拟运营商: 170、171,173
  • 2018新增: 16x, 19x

tag使用方法 mobile

func IsNotIn

func IsNotIn(val interface{}, arg string) bool

不在范围内(对数字、字符、布尔类型有效) tag使用方法 not-in=a|b|c,多个规则使用|分隔

func IsNotNull

func IsNotNull(val interface{}) bool

为空验证(对字符、切片、对象类型有效)

func IsPassword

func IsPassword(val interface{}) bool

通用密码(任意可见字符,长度在6~18之间) tag使用方法 password

func IsPassword2

func IsPassword2(val interface{}) bool

中等强度密码(在弱密码的基础上,必须包含大小写字母和数字) tag使用方法 password2

func IsPassword3

func IsPassword3(val interface{}) bool

强等强度密码(在弱密码的基础上,必须包含大小写字母、数字和特殊字符) tag使用方法 password3

func IsPostcode

func IsPostcode(val interface{}) bool

邮政编码 tag使用方法 postcode

func IsQQ

func IsQQ(val interface{}) bool

腾讯QQ号,从10000开始 tag使用方法 tel

func IsTel

func IsTel(val interface{}) bool

国内座机电话号码:"XXXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"、"XXXXXXXX" tag使用方法 tel

func IsUrl

func IsUrl(val interface{}) bool

URL tag使用方法 url

func Marshal

func Marshal(obj interface{}) string

json反序列化

func ParseFloat

func ParseFloat(s string) float64

字符串转换为浮点数

func ParseInt

func ParseInt(s string) int64

字符串转换为整数

func RegValidater

func RegValidater(name string, fn Handler)

添加验证器

func ToBool

func ToBool(val interface{}) (bool, error)

转换为bool类型,大于0的数字=true,小于0的数字=false

func ToFloat64

func ToFloat64(val interface{}) (float64, error)

转换为float类型

func ToInt64

func ToInt64(val interface{}) (int64, error)

转换为int64

func ToMap

func ToMap(val interface{}) (map[string]interface{}, error)

转换为map

func ToSlice

func ToSlice(val interface{}) ([]interface{}, error)

转换为slice

func ToString

func ToString(val interface{}) (str string, err error)

转换为string

func ToTime

func ToTime(val interface{}, layout string) (time.Time, error)

转换为日期

func ToUint64

func ToUint64(val interface{}) (uint64, error)

转换为uint64

Types

type BindError

type BindError struct {
	// contains filtered or unexported fields
}

绑定错误

func (*BindError) Error

func (this *BindError) Error() string

func (*BindError) Field

func (this *BindError) Field() string

func (*BindError) Msg

func (this *BindError) Msg() string

type Handler

type Handler func(val interface{}, arg string) bool

验证方法 val=值,arg=参数

type SerializeInterface

type SerializeInterface interface {
	UnmarshalJSON(data []byte) error
	MarshalJSON() ([]byte, error)
}

json序列化接口

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL