You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
957 B
36 lines
957 B
package validate |
|
|
|
import ( |
|
"regexp" |
|
|
|
"go-common/library/net/http/blademaster/binding" |
|
|
|
"gopkg.in/go-playground/validator.v9" |
|
) |
|
|
|
var ( |
|
//RegIDcheck 检查身份证 |
|
RegIDcheck = regexp.MustCompile(`(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X)$)`) |
|
//RegHTTPCheck 检查HTTP格式 |
|
RegHTTPCheck = regexp.MustCompile(`^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+`) |
|
//RegPhoneCheck 检查电话格式 |
|
RegPhoneCheck = regexp.MustCompile(`1[345678]\d{9}`) |
|
) |
|
|
|
func init() { |
|
binding.Validator.RegisterValidation("idcheck", idcheck) |
|
binding.Validator.RegisterValidation("httpcheck", httpcheck) |
|
binding.Validator.RegisterValidation("phonecheck", phonecheck) |
|
} |
|
|
|
func idcheck(fl validator.FieldLevel) bool { |
|
return RegIDcheck.MatchString(fl.Field().String()) |
|
} |
|
|
|
func httpcheck(fl validator.FieldLevel) bool { |
|
return RegHTTPCheck.MatchString(fl.Field().String()) |
|
} |
|
|
|
func phonecheck(fl validator.FieldLevel) bool { |
|
return RegPhoneCheck.MatchString(fl.Field().String()) |
|
}
|
|
|