simpler solution to mask using padStart

This commit is contained in:
Theo Menkes Reis
2018-09-25 00:21:18 +00:00
parent 9e6c789bea
commit 77167a059d
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;