42 lines
863 B
Go
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
|
|
}
|