data_mask/strategy/phone.go

42 lines
863 B
Go
Raw Normal View History

2023-10-19 17:25:09 +08:00
// Package strategy ...
2023-05-24 15:00:11 +08:00
//
// Description : data_mask ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2023-05-24 14:52
2023-10-19 17:25:09 +08:00
package strategy
2023-05-24 15:00:11 +08:00
2023-10-19 17:25:09 +08:00
import (
"git.zhangdeman.cn/zhangdeman/data_mask/define"
"regexp"
)
2023-05-24 15:00:11 +08:00
// PhoneDataMask ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:57 2023/5/24
type PhoneDataMask struct {
}
func (p PhoneDataMask) Mask(input string) string {
// 匹配规则
// ^1第一位为一
// [345789]{1} 后接一位345789 的数字
// \\d \d的转义 表示数字 {9} 接9位
// $ 结束符
regRuler := "^1[345789]{1}\\d{9}$"
// 正则调用规则
reg := regexp.MustCompile(regRuler)
// 返回 MatchString 是否匹配
if !reg.MatchString(input) {
return input
}
return string(input[0:3]) + "******" + string(input[9:11])
}
func (p PhoneDataMask) Type() string {
2023-10-19 17:25:09 +08:00
return define.TypePhone
2023-05-24 15:00:11 +08:00
}