JSFiddle - React, Tailwind, and code Playground
String utils function
by Travis Almand
HTML
<p>open the console...</p>
<p id="output"></p>
JavaScript
console.clear();
function stringUtils (input) {
const _inputLength = input.length;
const public = {
methodC: (maskChar) => {
maskChar = maskChar || '*';
return [...Array(_inputLength)].map(item => maskChar).join('');
},
methodD: (options = {}) => {
let _maskChar = options.maskChar || '*';
let _unmaskLength = options.unmaskLength || 4;
let _stopMaskingAt = _inputLength - _unmaskLength;
return [...Array(_inputLength)].map((item, index) => {
if (index >= _stopMaskingAt) {
return input[index];
} else {
return _maskChar;
}
}).join('');
},
methodA: () => {
return input.split('').reverse().join('');
},
methodB: () => {
return input.split('').sort(() => { return 0.5 - Math.random() }).join('')
}
}
return public;
}
console.groupCollapsed('methodA');
console.log(`output 1: ${stringUtils('this is a string').methodA()}`);
console.groupEnd();
console.groupCollapsed('methodB');
console.log(`output 1: ${stringUtils('this is a string').methodB()}`);
console.groupEnd();
console.groupCollapsed('methodC');
console.log(`output 1: ${stringUtils('this is a string').methodC()}`);
console.log(`output 2: ${stringUtils('this is a string').methodC('#')}`);
console.groupEnd();
console.groupCollapsed('methodD');
console.log(`output 1: ${stringUtils('1234567890').methodD()}`);
console.log(`output 2: ${stringUtils('1234567890').methodD({unmaskLength: 6})}`);
console.log(`output 3: ${stringUtils('1234567890').methodD({maskChar: '#'})}`);
console.log(`output 4: ${stringUtils('1234567890').methodD({maskChar: '#', unmaskLength: 2})}`);
console.groupEnd();
document.querySelector('#output').innerText = stringUtils('1234567890').methodD();