给字符串打马赛克

 /**
    给字符串打马赛克
    如:将123456转换为1****6,最多将字符串中间6个字符变成*
    如果字符串长度小于等于2,将不会有效果
  */
  addMosaic(str) {
    const s = String(str);
    const lenth = s.length;
    const howmuch = (() => {
      if (s.length <= 2) {
        return s.length;
      }
      const l = s.length - 2;
      if (l <= 6) {
        return l;
      }
      return 6;
    })();
    const start = Math.floor((lenth - howmuch) / 2);
    const ret = s.split("").map((v, i) => {
      if (i >= start && i < start + howmuch) {
        return "*";
      }
      return v;
    });
    return ret.join("");
  },

猜你喜欢

转载自blog.csdn.net/qq_41831345/article/details/90262411