simpler solution to mask using padStart

This commit is contained in:
Theo Menkes Reis
2018-09-25 00:21:18 +00:00
parent de7ec7e1ed
commit 4cbb97733b
2 changed files with 3 additions and 4 deletions

View File

@ -2,14 +2,13 @@
Replaces all but the last `num` of characters with the specified mask character. Replaces all but the last `num` of characters with the specified mask character.
Use `String.slice()` to grab the portion of the characters that need to be masked and use `String.replace()` with a regexp to replace every character with the mask character. Use `String.slice()` to grab the portion of the characters that will remain unmasked and use `String.padStart()` to fill the beginning of the string with the mask character up to the original length.
Concatenate the masked characters with the remaining unmasked portion of the string.
Omit the second argument, `num`, to keep a default of `4` characters unmasked. 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. If `num` is negative, the unmasked characters will be at the start of the string.
Omit the third argument, `mask`, to use a default character of `'*'` for the mask. Omit the third argument, `mask`, to use a default character of `'*'` for the mask.
```js ```js
const mask = (cc, num = 4, mask = '*') => const mask = (cc, num = 4, mask = '*') =>
('' + cc).slice(0, -num).replace(/./g, mask) + ('' + cc).slice(-num); ('' + cc).slice(-num).padStart(('' + cc).length, mask);
``` ```
```js ```js

View File

@ -1,3 +1,3 @@
const mask = (cc, num = 4, mask = '*') => const mask = (cc, num = 4, mask = '*') =>
('' + cc).slice(0, -num).replace(/./g, mask) + ('' + cc).slice(-num); ('' + cc).slice(-num).padStart(('' + cc).length, mask);
module.exports = mask; module.exports = mask;