27 lines
678 B
Go
27 lines
678 B
Go
package model
|
|
|
|
import (
|
|
"bytes"
|
|
"regexp"
|
|
)
|
|
|
|
// var .
|
|
var (
|
|
EmojiPattern = regexp.MustCompile(`[\x{1F600}-\x{1F6FF}|[\x{2600}-\x{26FF}]`)
|
|
NamePattern = regexp.MustCompile("^[A-Za-z0-9\uAC00-\uD788\u3041-\u309E\u30A1-\u30FE\u3131-\u3163\u4E00-\u9FA5\uF92C-\uFA29_\\-]+$")
|
|
)
|
|
|
|
// HasEmoji is used to check string is contain emoji
|
|
func HasEmoji(s string) bool {
|
|
return EmojiPattern.MatchString(s)
|
|
}
|
|
|
|
// ValidName check string is contain special characters.
|
|
func ValidName(s string) bool {
|
|
h := []byte(s)
|
|
if bytes.Contains(h, []byte("\xF0\x9F")) || bytes.Contains(h, []byte("\xC2\xA0")) {
|
|
return false
|
|
}
|
|
return NamePattern.MatchString(s) && !EmojiPattern.MatchString(s)
|
|
}
|