32 lines
713 B
Go
32 lines
713 B
Go
package utils
|
|
|
|
import (
|
|
"regexp"
|
|
"strings"
|
|
)
|
|
|
|
var nonAlphanumericRegexp = regexp.MustCompile(`[^a-z0-9]+`)
|
|
|
|
// UnderscoreString mengubah string judul/nama menjadi format_ular (misal: "Evolusi Mega" -> "evolusi_mega")
|
|
func UnderscoreString(s string) string {
|
|
s = strings.ToLower(strings.TrimSpace(s))
|
|
s = strings.ReplaceAll(s, "&", "and")
|
|
s = nonAlphanumericRegexp.ReplaceAllString(s, "_")
|
|
s = strings.Trim(s, "_")
|
|
if s == "" {
|
|
s = "underscore_string"
|
|
}
|
|
return s
|
|
}
|
|
|
|
func Slugify(s string) string {
|
|
s = strings.ToLower(strings.TrimSpace(s))
|
|
s = strings.ReplaceAll(s, "&", "and")
|
|
s = nonAlphanumericRegexp.ReplaceAllString(s, "-")
|
|
s = strings.Trim(s, "-")
|
|
if s == "" {
|
|
s = "slugify"
|
|
}
|
|
return s
|
|
}
|