-
Notifications
You must be signed in to change notification settings - Fork 1
/
mobile.go
32 lines (27 loc) · 889 Bytes
/
mobile.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package validation
/**
* created by mengqi on 2023/11/21
*/
import (
"regexp"
"github.com/gin-gonic/gin/binding"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
func RegisterMobile(translator ut.Translator) {
if v, ok := binding.Validator.Engine().(*validator.Validate); ok {
_ = v.RegisterValidation("mobile", ValidateMobile)
_ = v.RegisterTranslation("mobile", translator, func(ut ut.Translator) error {
return ut.Add("mobile", "{0} 非法的手机号码!", true) // see universal-translator for details
}, func(ut ut.Translator, fe validator.FieldError) string {
t, _ := ut.T("mobile", fe.Field())
return t
})
}
}
func ValidateMobile(fl validator.FieldLevel) bool {
mobile := fl.Field().String()
//使用正则表达式判断是否合法
ok, _ := regexp.MatchString(`^1[3456789]\d{9}$`, mobile)
return ok
}