mirror of
https://github.com/darmiel/yaxc.git
synced 2025-09-29 01:46:38 +08:00
49 lines
764 B
Go
49 lines
764 B
Go
package common
|
|
|
|
import (
|
|
"log"
|
|
"regexp"
|
|
)
|
|
|
|
const (
|
|
APMinLength = 3
|
|
APMaxLength = 128
|
|
)
|
|
|
|
var (
|
|
APAllowedChars = []byte("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_+*!$%~@")
|
|
)
|
|
|
|
func ValidateAnywherePath(anywhere string) bool {
|
|
l := len(anywhere)
|
|
if l < APMinLength || l > APMaxLength {
|
|
return false
|
|
}
|
|
for _, c := range anywhere {
|
|
b := byte(c)
|
|
f := false
|
|
for _, a := range APAllowedChars {
|
|
if a == b {
|
|
f = true
|
|
break
|
|
}
|
|
}
|
|
if !f {
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
}
|
|
|
|
var p *regexp.Regexp
|
|
|
|
func init() {
|
|
var err error
|
|
if p, err = regexp.Compile(`^[A-Za-z0-9.\-_+*!$%~@]{3,128}$`); err != nil {
|
|
log.Fatalln(err)
|
|
}
|
|
}
|
|
|
|
func ValidateAnywherePathRegex(anywhere string) bool {
|
|
return p.MatchString(anywhere)
|
|
}
|