mirror of
https://github.com/cubixle/codekata-golang.git
synced 2026-04-30 13:58:45 +01:00
20210115
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
package main
|
||||
|
||||
import "strings"
|
||||
|
||||
func main() {
|
||||
|
||||
}
|
||||
|
||||
func maskPII(s string) string {
|
||||
if strings.Contains(s, "@") {
|
||||
return maskEmail(s)
|
||||
}
|
||||
return maskPhone(s)
|
||||
}
|
||||
|
||||
func maskEmail(s string) string {
|
||||
ss := strings.Split(s, "@")
|
||||
name := ss[0]
|
||||
name = strings.ToLower(name)
|
||||
sb := strings.Builder{}
|
||||
sb.WriteByte(name[0])
|
||||
sb.WriteString("*****")
|
||||
sb.WriteByte(name[len(name)-1])
|
||||
return sb.String() + "@" + strings.ToLower(ss[1])
|
||||
}
|
||||
|
||||
func maskPhone(s string) string {
|
||||
sb := strings.Builder{}
|
||||
for _, c := range s {
|
||||
if c >= '0' && c <= '9' {
|
||||
sb.WriteByte(uint8(c))
|
||||
}
|
||||
}
|
||||
phone := sb.String()
|
||||
sb = strings.Builder{}
|
||||
ccLen := len(phone) - 10
|
||||
if ccLen > 0 {
|
||||
sb.WriteString("+")
|
||||
for i := 0; i < ccLen; i++ {
|
||||
sb.WriteString("*")
|
||||
}
|
||||
sb.WriteString("-")
|
||||
}
|
||||
sb.WriteString("***-***-")
|
||||
sb.WriteString(phone[len(phone)-4:])
|
||||
return sb.String()
|
||||
}
|
||||
Reference in New Issue
Block a user