mirror of
https://github.com/acepanel/panel.git
synced 2026-02-06 23:37:23 +08:00
27 lines
435 B
Go
27 lines
435 B
Go
package rule
|
|
|
|
import (
|
|
"regexp"
|
|
|
|
"github.com/go-playground/validator/v10"
|
|
)
|
|
|
|
type Regexp struct{}
|
|
|
|
func NewRegexp() *Regexp {
|
|
return &Regexp{}
|
|
}
|
|
|
|
func (r *Regexp) Regexp(fl validator.FieldLevel) bool {
|
|
// 从标签中获取正则,格式类似于 `regexp=^[a-zA-Z0-9_]+$`
|
|
pattern := fl.Param()
|
|
value := fl.Field().String()
|
|
|
|
re, err := regexp.Compile(pattern)
|
|
if err != nil {
|
|
return false
|
|
}
|
|
|
|
return re.MatchString(value)
|
|
}
|