package com.odcc.cpzidc.common.enums; import java.util.function.Function; import com.odcc.cpzidc.common.utils.DesensitizedUtil; /** * 脱敏类型 * * @author ruoyi */ public enum DesensitizedType { /** * 姓名,第2位星号替换 */ USERNAME(s -> s.replaceAll("(\\S)\\S(\\S*)", "$1*$2")), /** * 密码,全部字符都用*代替 */ PASSWORD(DesensitizedUtil::password), /** * 身份证,中间10位星号替换 */ ID_CARD(s -> s.replaceAll("(\\d{4})\\d{10}(\\d{4})", "$1** **** ****$2")), /** * 手机号,中间4位星号替换 */ PHONE(s -> s.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2")), /** * 电子邮箱,仅显示第一个字母和@后面的地址显示,其他星号替换 */ EMAIL(s -> s.replaceAll("(^.)[^@]*(@.*$)", "$1****$2")), /** * 银行卡号,保留最后4位,其他星号替换 */ BANK_CARD(s -> s.replaceAll("\\d{15}(\\d{3})", "**** **** **** **** $1")), /** * 车牌号码,包含普通车辆、新能源车辆 */ CAR_LICENSE(DesensitizedUtil::carLicense); private final Function desensitizer; DesensitizedType(Function desensitizer) { this.desensitizer = desensitizer; } public Function desensitizer() { return desensitizer; } }