data_mask/phone.go

39 lines
804 B
Go

// Package data_mask ...
//
// Description : data_mask ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2023-05-24 14:52
package data_mask
import "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 TypePhone
}