Merge pull request #751 from Theomg/master
[ENHANCEMENT] Simpler solution to mask using padStart
This commit is contained in:
@ -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
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user