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();