2020-11-28 18:50:30 +08:00

37 lines
834 B
Go

package service
func mask(str string, start, end int) string {
maskLen := end - start
if maskLen < 0 {
panic("end cannot be greater than start")
}
var maskStr string
for i := 0; i <= maskLen; i++ {
maskStr += "*"
}
runes := []rune(str)
return string(append(runes[:start], append([]rune(maskStr), runes[end+1:]...)...))
}
func maskLeft(str string, reserve int) string {
runes := []rune(str)
if len(runes)-reserve < 0 {
panic("length of reserved string is out of range")
}
for i := 0; i < len(runes)-reserve; i++ {
runes[i] = '*'
}
return string(runes)
}
func maskRight(str string, reserve int) string {
runes := []rune(str)
if len(runes)-reserve < 0 {
panic("length of reserved string is out of range")
}
for i := len(runes) - 1; i > len(runes)-reserve; i-- {
runes[i] = '*'
}
return string(runes)
}