// 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 }