|
@@ -180,9 +180,10 @@ func Validate(obj interface{}) martini.Handler {
|
|
|
}
|
|
|
|
|
|
var (
|
|
|
- alphaDashPattern = regexp.MustCompile("[^\\d\\w-_]")
|
|
|
- emailPattern = regexp.MustCompile("[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[a-zA-Z0-9](?:[\\w-]*[\\w])?")
|
|
|
- urlPattern = regexp.MustCompile(`(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?`)
|
|
|
+ alphaDashPattern = regexp.MustCompile("[^\\d\\w-_]")
|
|
|
+ alphaDashDotPattern = regexp.MustCompile("[^\\d\\w-_\\.]")
|
|
|
+ emailPattern = regexp.MustCompile("[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[a-zA-Z0-9](?:[\\w-]*[\\w])?")
|
|
|
+ urlPattern = regexp.MustCompile(`(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?`)
|
|
|
)
|
|
|
|
|
|
func validateStruct(errors *base.BindingErrors, obj interface{}) {
|
|
@@ -227,6 +228,11 @@ func validateStruct(errors *base.BindingErrors, obj interface{}) {
|
|
|
errors.Fields[field.Name] = base.BindingAlphaDashError
|
|
|
break
|
|
|
}
|
|
|
+ case rule == "AlphaDashDot":
|
|
|
+ if alphaDashDotPattern.MatchString(fmt.Sprintf("%v", fieldValue)) {
|
|
|
+ errors.Fields[field.Name] = base.BindingAlphaDashDotError
|
|
|
+ break
|
|
|
+ }
|
|
|
case strings.HasPrefix(rule, "MinSize("):
|
|
|
min, err := strconv.Atoi(rule[8 : len(rule)-1])
|
|
|
if err != nil {
|