字符串隐藏部分内容

字符串隐藏部分内容

需求

说明实现一个方法,接收一个字符串和一个符号,将字符串中间四位按指定符号隐藏
1.符号无指定时使用星号()
2.接收的字符串小于或等于四位时,返回同样长度的符号串,等同
于全隐藏,如123,隐藏后是**
3.字符串长度是大于四位的奇数时,如123456789,隐藏后是
12
***789奇数多出来的一位在末尾

     let arrList = ['12345', 'lxlxbaba', 'lx', 'summer', '855520cfoni'];
     
// 方法一 // 通过遍历 查找到属于范围内的数据进行替换
    function mask(str, rep = '*') {
        let strArr = str.split('');
        let leg = strArr.length;
        let result = [];
        let num = Math.ceil((leg - 4) / 2);
        for (let i = 0; i < leg; i++) {
          if (leg - num - 4 - 1 >= i || i >= leg - num) {
            result.push(strArr[i]);
          } else {
            result.push(rep);
          }
        }
        return result.join('');
      }
  // 方法二  通过替换固定范围内容
      function mask2(str, rep = '*') {
	       let num = Math.ceil((str.length - 4) / 2); // 截取起点
	       let start = str.length - 4 - num;
	       let end = str.length - num;
	       start = start > 0 ? start : 0;
	       let strArr = str.split('');
	       for (let i = start; i < end; i++) {
	         strArr[i] = rep;
	       }
	       return strArr.join('');
    }
 // 方法三  截取出不需要隐藏的部分进行拼接
      function mask3(str, rep = '*') {
        let start = Math.floor((str.length - 4) / 2); // 向下取整数做开始索引
        let strss = new Array((str.length >= 4 ? 4 : str.length) + 1).join(rep); // 生成替换长度字符串
        if (str.length <= 4) {
          return strss;
        } else {
          return str.substr(0, start) + strss + str.substr(start + 4, str.length);
        }
      }
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值