30 lines
503 B
Go
30 lines
503 B
Go
package mask
|
|
|
|
import "strings"
|
|
|
|
func Email(email string) string {
|
|
parts := strings.Split(email, "@")
|
|
if len(parts) != 2 {
|
|
return email
|
|
}
|
|
local := parts[0]
|
|
if len(local) > 2 {
|
|
local = local[:1] + "***" + local[len(local)-1:]
|
|
} else {
|
|
local = local[:1] + "***"
|
|
}
|
|
return local + "@" + parts[1]
|
|
}
|
|
|
|
func Emails(emails []string) []string {
|
|
if emails == nil {
|
|
return nil
|
|
}
|
|
|
|
masked := make([]string, len(emails))
|
|
for i, email := range emails {
|
|
masked[i] = Email(email)
|
|
}
|
|
return masked
|
|
}
|