fix maskname

This commit is contained in:
liangzai 2025-04-08 16:10:19 +08:00
parent 95ab1296a8
commit 729eba889d

View File

@ -277,16 +277,25 @@ func containsSensitivePattern(value string) bool {
// 姓名脱敏
func maskName(name string) string {
if len(name) <= 1 {
// 将字符串转换为rune切片以正确处理中文字符
runes := []rune(name)
length := len(runes)
if length <= 1 {
return name
}
if len(name) == 2 {
return string(name[0]) + "*"
if length == 2 {
// 两个字:保留第一个字,第二个字用*替代
return string(runes[0]) + "*"
}
// 中文姓名常见3-4个字只显示第一个字
first := string(name[0])
mask := strings.Repeat("*", len(name)-1)
return first + mask
// 三个字及以上:保留首尾字,中间用*替代
first := string(runes[0])
last := string(runes[length-1])
mask := strings.Repeat("*", length-2)
return first + mask + last
}
// 身份证号脱敏