Merge pull request #751 from Theomg/master

[ENHANCEMENT] Simpler solution to mask using padStart
This commit is contained in:
Angelos Chalaris
2018-09-26 12:27:33 +03:00
committed by GitHub
2 changed files with 3 additions and 5 deletions

View File

@ -2,14 +2,12 @@
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(-num).padStart(`${cc}`.length, mask);
('' + cc).slice(0, -num).replace(/./g, mask) + ('' + cc).slice(-num);
``` ```
```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;