UNPKG

@js-random/string

Version:

A simple and lightweight string randomizer for JavaScript (TypeScript friendly)

48 lines (44 loc) 1.65 kB
var randomString = (function () { 'use strict'; var charsPadding = 32; var charsAmount = 126 - 32; var defaultSeed = (function () { var seed = ''; for (var char = charsPadding; char <= charsAmount; char++) { seed += String.fromCharCode(char); } return seed; })(); var defaultFilter = /./; var defaultLength = 10; /** * Generates random string * * @param optionsOrLength string's length or object-style options * @param seed (optional) a string to be used as a seed for the new random string * @param filter to filter the resulting string by */ function randomString(optionsOrLength, seed, filter) { var _length = defaultLength; var _filter = defaultFilter; var _seed = defaultSeed; if (typeof optionsOrLength === 'object') { _seed = optionsOrLength.seed || defaultSeed; _filter = optionsOrLength.filter || defaultFilter; _length = typeof optionsOrLength.length === 'number' ? optionsOrLength.length : defaultLength; } else if (typeof optionsOrLength === 'number') { _length = optionsOrLength; _filter = filter || defaultFilter; _seed = seed || defaultSeed; } var result = ''; for (var i = 0; i < _length; i++) { result += _seed.split('') .sort(function () { return Math.random() - 0.5; }) .find(function (char) { return _filter.test(char); }); } return result; } return randomString; }());