Skip to content

Instantly share code, notes, and snippets.

@luislobo14rap
Last active November 9, 2021 16:02
Show Gist options
  • Select an option

  • Save luislobo14rap/4e89de12f6b0690611fad393d27f75f2 to your computer and use it in GitHub Desktop.

Select an option

Save luislobo14rap/4e89de12f6b0690611fad393d27f75f2 to your computer and use it in GitHub Desktop.
random-characters.js
// random-characters.js v1.1
function randomCharacters(length = [5, 15], characters) {
let result = '',
numbers = '0123456789',
abc = 'abcdefghijklmnopqrstuvwxyz',
abcSensitive = abc + abc.toUpperCase(),
latin = abc + 'àáâãäçèéêëìíîïñòóôõöùúûü',
latinSensitive = latin + latin.toUpperCase(),
specials = '!@#$%¨&*()_-+=';
characters = characters !== undefined ? characters : abcSensitive;
if (typeof length !== 'number') {
let min = Math.min(length[0], length[1]);
let max = Math.max(length[0], length[1]);
max = max + 1 - min;
length = min + Math.floor(Math.random() * max);
};
switch (characters) {
case 'numbers':
characters = numbers;
break;
case 'letters':
characters = abc;
break;
case 'lettersSensitive':
characters = abcSensitive;
break;
case 'latin':
characters = latin;
break;
case 'latinSensitive':
characters = latinSensitive;
break;
case 'specials':
characters = specials;
break;
case 'hex':
characters = '0123456789abcdef';
break;
case 'all':
characters = numbers + latinSensitive + specials;
break;
};
for (let i = 0; i < length; i++) {
result += characters[Math.floor(Math.random() * characters.length)];
};
return result;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment