35 lines
801 B
Go
35 lines
801 B
Go
package commons
|
|
|
|
import (
|
|
"regexp"
|
|
"strings"
|
|
|
|
"golang.org/x/text/cases"
|
|
"golang.org/x/text/language"
|
|
)
|
|
|
|
var caserTitle cases.Caser = cases.Title(language.English, cases.NoLower)
|
|
|
|
var whitespace = regexp.MustCompile(`\s+`)
|
|
|
|
func StringTitle(s string) string {
|
|
return caserTitle.String(s)
|
|
}
|
|
|
|
// StringNormalize will replace arbitrary lengths of consecutive white space with a single one.
|
|
func StringNormalize(s string) string {
|
|
s = whitespace.ReplaceAllString(s, " ")
|
|
|
|
return strings.TrimSpace(s)
|
|
}
|
|
|
|
//StringIsBlank checks if a string is blank. Will trim the string before the check takes place.
|
|
func StringIsBlank(s string) bool {
|
|
return len(strings.TrimSpace(s)) == 0
|
|
}
|
|
|
|
// StringIsNotBlank check if a string is NOT blank.
|
|
func StringIsNotBlank(s string) bool {
|
|
return !StringIsBlank(s)
|
|
}
|