go-nostr/nip54/nip54.go

27 lines
490 B
Go
Raw Permalink Normal View History

2024-03-13 12:53:33 -03:00
package nip54
import (
"strings"
"unicode"
2024-03-13 12:53:33 -03:00
"golang.org/x/text/transform"
"golang.org/x/text/unicode/norm"
)
func NormalizeIdentifier(name string) string {
2024-03-13 19:26:37 -03:00
name = strings.TrimSpace(strings.ToLower(name))
2024-03-13 12:53:33 -03:00
res, _, _ := transform.Bytes(norm.NFKC, []byte(name))
runes := []rune(string(res))
b := make([]rune, len(runes))
for i, letter := range runes {
2024-05-10 17:58:21 -03:00
if unicode.IsLetter(letter) || unicode.IsNumber(letter) {
b[i] = letter
} else {
b[i] = '-'
}
}
return string(b)
2024-03-13 12:53:33 -03:00
}