What is randomatic?
The randomatic npm package is a utility for generating random strings of various patterns. It can be used to create random and unique strings of a specified length, pattern, or characters, which is useful for generating passwords, identifiers, and other random tokens.
What are randomatic's main functionalities?
Pattern-based random string generation
Generates a random string of length 10 following the pattern 'Aa0!', where 'A' stands for uppercase letters, 'a' for lowercase letters, '0' for numbers, and '!' for special characters.
randomatic('Aa0!', 10)
Custom character pool
Generates a random string of length 10 using only the characters provided in the 'chars' option, in this case, 'abc123'.
randomatic('?', 10, {chars: 'abc123'})
Masked characters
Generates a random string of length 10 excluding the character 'a' from the possible characters.
randomatic('?', 10, {exclude: 'a'})
Other packages similar to randomatic
chance
Chance is a minimalist generator of random strings, numbers, etc. It is more comprehensive than randomatic, providing a larger set of features for generating random data of various types, not just strings.
faker
Faker is a powerful library for generating massive amounts of fake data, including random strings. It is designed to be easy to use and comprehensive, offering a wide range of data types and locales, which makes it more extensive compared to randomatic.
uuid
While not a direct alternative for all of randomatic's functionality, the uuid package is commonly used for generating unique identifiers, which is one of the use cases for randomatic. It provides RFC-compliant UUID generation.
randomatic
Generate randomized strings of a specified length from patterns of numeric, alpha-numeric, alphabetical, special or custom characters.
Quickstart
npm i randomatic --save
bower install randomatic --save
Tests
Run the tests
mocha
Documentation
var randomize = require('randomatic');
Params
The following parameters can be passed (randomize(Pattern, Length, Options)
)
pattern
Type: String
(required)
Default: undefined
a
: Lowercase alpha characters (abcdefghijklmnopqrstuvwxyz'
)A
: Uppercase alpha characters (ABCDEFGHIJKLMNOPQRSTUVWXYZ'
)0
: Numeric characters (0123456789'
)!
: Special characters (~!@#$%^&()_+-={}[];\',.
)*
: All characters (all of the above combined)?
: Custom characters (pass a string of custom characters to the options)
Patterns can contain any combination of the above characters, in any order. For example, randomize('Aa0!', 10)
will generate a 10-character randomized string with all of the specified patterns.
length
Type: Number
(optional)
Default: undefined
Specify the number of characters/digits to generate in the output.
Examples:
randomize('A', 5)
will generate a 5-character, uppercase, alphabetical, randomized string, e.g. KDJWJ
.randomize('0', 2)
will generate a 2-digit random numberrandomize('0', 3)
will generate a 3-digit random numberrandomize('0', 12)
will generate a 12-digit random numberrandomize('A0', 16)
will generate a 16-character, alpha-numeric randomized string
If length
is left undefined, the length of the pattern in the first parameter will be used. For example:
randomize('00')
will generate a 2-digit random numberrandomize('000')
will generate a 3-digit random numberrandomize('0000')
will generate a 4-digit random number...randomize('AAAAA')
will generate a 5-character, uppercase alphabetical random string...
...and so on.
options
Type: Object
(optional)
Default: undefined
Currently the only option is chars
, which allows you to define a custom string to be randomized. For example:
randomize('?', 20, {chars: 'jonschlinkert'})
will generate a 20-character randomized string from the letters contained in jonschlinkert
.randomize('?', {chars: 'jonschlinkert'})
will generate a 13-character randomized string from the letters contained in jonschlinkert
.
Usage Examples
randomize('A', 4)
(whitespace insenstive) would result in randomized 4-digit uppercase letters, like, ZAKH
, UJSL
... and so on.randomize('AAAA')
is equivelant to randomize('A', 4)
randomize('AAA0')
and randomize('AA00')
and randomize('A0A0')
are equivelant to randomize('A0', 4)
randomize('aa')
: results in double-digit, randomized, lower-case letters (abcdefghijklmnopqrstuvwxyz
)randomize('AAA')
: results in triple-digit, randomized, upper-case letters (ABCDEFGHIJKLMNOPQRSTUVWXYZ
)randomize('0', 6)
: results in six-digit, randomized nubmers (0123456789
)randomize('!', 5)
: results in single-digit randomized, valid non-letter characters (~!@#$%^&()_+-={}[];\',.
)randomize('A!a0', 9)
: results in nine-digit, randomized characters (any of the above)
The order in which the characters are provided has no impact on the outcome.
Contributing
Find a bug? Have a feature request? Please create an Issue.
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality,
and run docs
in the command line to build the docs with Verb.
Pull requests are also encouraged, and if you find this project useful please consider "starring" it to show your support! Thanks!
Authors
Jon Schlinkert
License
Copyright (c) 2014 Jon Schlinkert, contributors.
Released under the MIT license
This file was generated by verb-cli on May 19, 2014.