github.com/nsqio/nsq@v1.3.0/internal/protocol/names.go (about)

     1  package protocol
     2  
     3  import (
     4  	"regexp"
     5  )
     6  
     7  var validTopicChannelNameRegex = regexp.MustCompile(`^[.a-zA-Z0-9_-]+(#ephemeral)?$`)
     8  
     9  // IsValidTopicName checks a topic name for correctness
    10  func IsValidTopicName(name string) bool {
    11  	return isValidName(name)
    12  }
    13  
    14  // IsValidChannelName checks a channel name for correctness
    15  func IsValidChannelName(name string) bool {
    16  	return isValidName(name)
    17  }
    18  
    19  func isValidName(name string) bool {
    20  	if len(name) > 64 || len(name) < 1 {
    21  		return false
    22  	}
    23  	return validTopicChannelNameRegex.MatchString(name)
    24  }