package validate /*********************************************************** *名字 golang 正则工具 *功能 支持数字,字母,字符,常用信息(电话,邮箱)等的正则匹配 ************************************************************/ import ( "regexp" "strings" ) func IsColor(str ...string) bool { var b bool for _, s := range str { b, _ = regexp.MatchString("^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$", s) if false == b { return b } } return b } func IsURL(s string) bool { if strings.HasPrefix(s, "http://") { return true } if strings.HasPrefix(s, "https://") { return true } return false } /************************* 自定义类型 ************************/ //数字+字母 不限制大小写 6~30位 func IsID(str ...string) bool { var b bool for _, s := range str { b, _ = regexp.MatchString("^[0-9a-zA-Z]{6,30}$", s) if false == b { return b } } return b } //数字+字母+符号 6~30位 func IsPwd(str ...string) bool { var b bool for _, s := range str { b, _ = regexp.MatchString("^[0-9a-zA-Z@.]{6,30}$", s) if false == b { return b } } return b } /************************* 数字类型 ************************/ //纯整数 func IsInteger(str ...string) bool { var b bool for _, s := range str { b, _ = regexp.MatchString("^[0-9]+$", s) if false == b { return b } } return b } //纯小数 func IsDecimals(str ...string) bool { var b bool for _, s := range str { b, _ = regexp.MatchString("^\\d+\\.[0-9]+$", s) if false == b { return b } } return b } //手提电话(不带前缀)最高11位 func IsCellphone(str ...string) bool { var b bool for _, s := range str { b, _ = regexp.MatchString("^1[0-9]{10}$", s) if false == b { return b } } return b } //家用电话(不带前缀) 最高8位 func IsTelephone(str ...string) bool { var b bool for _, s := range str { b, _ = regexp.MatchString("^[0-9]{8}$", s) if false == b { return b } } return b } /************************* 英文类型 *************************/ //仅小写 func IsEngishLowCase(str ...string) bool { var b bool for _, s := range str { b, _ = regexp.MatchString("^[a-z]+$", s) if false == b { return b } } return b } //仅大写 func IsEnglishCap(str ...string) bool { var b bool for _, s := range str { b, _ = regexp.MatchString("^[A-Z]+$", s) if false == b { return b } } return b } //大小写混合 func IsEnglish(str ...string) bool { var b bool for _, s := range str { b, _ = regexp.MatchString("^[A-Za-z]+$", s) if false == b { return b } } return b } //邮箱 最高30位 func IsEmail(s string) (bool, error) { return regexp.MatchString("^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$", s) }