chars.go 443 B

123456789101112131415161718192021222324
  1. package validate
  2. import (
  3. "errors"
  4. "strings"
  5. )
  6. // Validation error.
  7. var (
  8. ErrDisallowedChars = errors.New("contains disallowed characters")
  9. )
  10. // Chars validates whether a string contains only allowed characters.
  11. func Chars(allow string) func(string) error {
  12. return func(value string) error {
  13. rs := []rune(value)
  14. for _, r := range rs {
  15. if !strings.ContainsRune(allow, r) {
  16. return ErrDisallowedChars
  17. }
  18. }
  19. return nil
  20. }
  21. }