Mask a value

OSCC · 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 the mask 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 of 4 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'

Recommended snippets