Mask a value
JavaScript, String · Oct 21, 2020

Replaces all but the last num
of characters with the specified mask character.
- Use
String.prototype.slice()
to grab the portion of the characters that will remain unmasked. - Use
String.prototype.padStart()
to fill the beginning of the string with themask
character up to the original length. - If
num
is negative, the unmasked characters will be at the start of the string. - Omit the second argument,
num
, to keep a default of4
characters unmasked. - Omit the third argument,
mask
, to use a default character of'*'
for the 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'