string.go 750 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package utils
  2. import (
  3. "encoding/json"
  4. "regexp"
  5. "strings"
  6. "unicode"
  7. )
  8. type StringArray string
  9. func (r StringArray) MarshalJSON() ([]byte, error) {
  10. items := []string{}
  11. if string(r) != "" {
  12. items = strings.Split(string(r), ",")
  13. }
  14. for _, item := range items {
  15. item = strings.TrimSpace(item)
  16. }
  17. return json.Marshal(items)
  18. }
  19. func Ellipsis(text string, length int) string {
  20. r := []rune(text)
  21. if len(r) > length {
  22. return string(r[0:length]) + "..."
  23. }
  24. return text
  25. }
  26. func HasChinese(str string) bool {
  27. for _, r := range str {
  28. if unicode.Is(unicode.Scripts["Han"], r) || (regexp.MustCompile("[\u3002\uff1b\uff0c\uff1a\u201c\u201d\uff08\uff09\u3001\uff1f\u300a\u300b]").MatchString(string(r))) {
  29. return true
  30. }
  31. }
  32. return false
  33. }