mirror of
https://github.com/kubenetworks/kubevpn.git
synced 2025-10-13 02:53:52 +08:00
35 lines
536 B
Go
35 lines
536 B
Go
package utils
|
|
|
|
import (
|
|
"unicode"
|
|
"unicode/utf8"
|
|
)
|
|
|
|
func IsValidIdentifier(str string) bool {
|
|
if len(str) == 0 {
|
|
return false
|
|
}
|
|
h, w := utf8.DecodeRuneInString(str)
|
|
if !IsAlphabetic(h) {
|
|
return false
|
|
}
|
|
for _, r := range str[w:] {
|
|
if !IsAlphaNumeric(r) {
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
}
|
|
|
|
func IsSpace(r rune) bool {
|
|
return unicode.IsSpace(r)
|
|
}
|
|
|
|
func IsAlphaNumeric(r rune) bool {
|
|
return IsAlphabetic(r) || unicode.IsDigit(r)
|
|
}
|
|
|
|
func IsAlphabetic(r rune) bool {
|
|
return r == '_' || r == '$' || unicode.IsLetter(r)
|
|
}
|