屏蔽JavaScript值
在与字符串操作相关的展示逻辑中,屏蔽敏感信息是最常见的一种情况。这通常与保存的信用卡号码有关,但也有其他用例。最常见的屏蔽格式是用掩码字符(如星号*
)替换大部分字符,只保留最后几个字符。
实现一个帮助函数来屏蔽任何值总体上是相当简单的。首先,我们可以使用模板字符串将值转换为字符串。然后,使用String.prototype.slice()
方法,我们可以获取保持不被屏蔽的字符部分。最后,我们可以使用String.prototype.padStart()
方法来用掩码字符填充字符串的开头,直到达到原始长度。
使用负数的num
参数将把未屏蔽的字符放在字符串的开头。省略第二个参数num
将保持默认值为4
个未屏蔽的字符。省略第三个参数mask
将使用默认字符'*'
作为掩码。
const mask = (cc, num = 4, mask = '*') =>
`${cc}`.slice(-num).padStart(`${cc}`.length, mask);
mask(1234567890); // '******7890'
mask(1234567890, 3); // '*******890'
mask(1234567890, -4, '$'); // '$$$$567890'