forked from jshiffer/matterbridge
29 lines
648 B
Go
29 lines
648 B
Go
package sanitize
|
|
|
|
import "regexp"
|
|
|
|
var reStripName = regexp.MustCompile("[^\\w.-]")
|
|
|
|
const maxLength = 16
|
|
|
|
// Name returns a name with only allowed characters and a reasonable length
|
|
func Name(s string) string {
|
|
s = reStripName.ReplaceAllString(s, "")
|
|
nameLength := maxLength
|
|
if len(s) <= maxLength {
|
|
nameLength = len(s)
|
|
}
|
|
s = s[:nameLength]
|
|
return s
|
|
}
|
|
|
|
var reStripData = regexp.MustCompile("[^[:ascii:]]|[[:cntrl:]]")
|
|
|
|
// Data returns a string with only allowed characters for client-provided metadata inputs.
|
|
func Data(s string, maxlen int) string {
|
|
if len(s) > maxlen {
|
|
s = s[:maxlen]
|
|
}
|
|
return reStripData.ReplaceAllString(s, "")
|
|
}
|