data_mask/strategy/phone.go
2023-10-19 17:25:09 +08:00

42 lines
863 B
Go

// Package strategy ...
//
// Description : data_mask ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2023-05-24 14:52
package strategy
import (
"git.zhangdeman.cn/zhangdeman/data_mask/define"
"regexp"
)
// 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 {
return define.TypePhone
}