mask - 使用 * 遮蔽字符串

优质
小牛编辑
124浏览
2023-12-01

用指定的掩码字符替换除最后 num 个字符以外的所有字符。

使用 String.slice() 获取需要被遮蔽的字符部分,并用正则表达式替换每个字符。 将遮蔽的字符与字符串的其余未遮蔽部分拼接起来。 省略第二个参数num,默认值为4,也就是说最后4个字符不被遮蔽。 如果num是负数,则不被遮蔽的字符将从字符串的开头算起。 省略第三个参数 mask ,默认使用字符'*'作为掩码遮蔽。

const mask = (cc, num = 4, mask = '*') =>
  ('' + cc).slice(0, -num).replace(/./g, mask) + ('' + cc).slice(-num);
mask(1234567890); // '******7890'
mask(1234567890, 3); // '*******890'
mask(1234567890, -4, '$'); // '$$$$567890'