Files

27 lines
461 B
Go

package slug
import (
"regexp"
"strings"
)
const (
DefaultLimit = 80
)
var invalidChars = regexp.MustCompile(`[^a-z0-9]+`)
func Normalize(s string) string {
return NormalizeWithLimit(s, DefaultLimit)
}
func NormalizeWithLimit(s string, limit int) string {
s = strings.ToLower(strings.TrimSpace(s))
s = invalidChars.ReplaceAllString(s, "-")
s = strings.Trim(s, "-")
if limit > 0 && len(s) > limit {
s = strings.Trim(s[:limit], "-")
}
return s
}