28 lines
572 B
Go
28 lines
572 B
Go
package utils
|
|
|
|
import "strings"
|
|
|
|
func GetInitials(name string) string {
|
|
name = strings.TrimSpace(name)
|
|
words := strings.Fields(name)
|
|
if len(words) == 0 {
|
|
return ""
|
|
}
|
|
if len(words) == 1 {
|
|
// Jika hanya satu kata, ambil 3 huruf awal (atau kurang jika <3)
|
|
initial := words[0]
|
|
if len(initial) > 3 {
|
|
initial = initial[:3]
|
|
}
|
|
return strings.ToUpper(initial)
|
|
}
|
|
// Jika lebih dari satu kata, ambil huruf pertama tiap kata
|
|
var initials string
|
|
for _, w := range words {
|
|
if len(w) > 0 {
|
|
initials += string(w[0])
|
|
}
|
|
}
|
|
return strings.ToUpper(initials)
|
|
}
|