js实现名称脱敏功能

908 阅读1分钟

开发过程中 偶尔会遇到展示用户个人信息的功能,项目一般会要求我们对名称,身份信息进行脱敏处理 以下是我的名称脱敏方法

desensitationName: string => {
    /**
     * 名称脱敏处理
     * 脱敏规则:两个字的,脱第二个字,比如王*;三个字,保留第一个字和最后一个字,比如李*芳;四个字及以上,保留前两个字和最后一个字,比如上官**野
     */
    if (string.length >= 4) {
      return string.slice(0, 2).padEnd(string.length - 1, '*') + string[string.length - 1]
    }
    if (string.length >= 3) {
      return string.slice(0, 1).padEnd(string.length - 1, '*') + string[string.length - 1]
    }
    if (string.length >= 2) {
      return string.slice(0, 1).padEnd(string.length, '*')
    }
    return string
  },