字符串中间四位替换字符

508 阅读1分钟

字符串隐藏部分内容

说明:实现一个方法,接收-一个字符串和一个符号,将学符串中间四位按指定符号隐藏

  1. 符号无指定时使用星号(*)

2.接收的宝符串小于或等于四位时,返回同样长度的符号串,等同于全隐藏, 如123,隐藏后是***

3.字符串长度是大于四位的奇数时,如123456789, 隐藏后是12****789, 奇数多出来的一位在末尾

mask('alibaba', '#'); // a####ba

mask('85022088'); // 85****88

mask('hello'); // ****o

mask('abc', '?'); // ???

mask('阿里巴巴集团', '?'); //阿???团

function mask(str, ch = '*') {
            const len = str.length, n = len >> 1;
            return len <= 4
                ? ch.repeat(len)
                : [...str].map((s, i) => i >= n - 2 && i <= n + 1 ? ch : s).join('');
        }

        alert(mask('alibaba', '#'));
        alert(mask('85022088'));
        alert(mask('hello'));
        alert(mask('abc', '?'));
        alert(mask('阿里巴巴集团', '?'));