Monthly Downloads: 44
Programming language: Elixir
License: GNU General Public License v3.0 only
Tags: Text And Numbers    
Latest version: v1.0.1

RandomStringGenerator alternatives and similar packages

Based on the "Text and Numbers" category

Do you think we are missing an alternative of RandomStringGenerator or a related project?

Add another 'Text and Numbers' Package



Build Status codecov

A module to generate a random string based on a given string pattern


The package can be installed by adding random_string_generator to your list of dependencies in mix.exs:

def deps do
    {:random_string_generator, "~> 1.0.0"}


Accepted string patterns:

Use l for lower case letter from a to z

Use L for upper case letter from A to Z

Use d for digit from 0 to 9

Use p for punctuation

Use c for custom character

Punctuation is any character on the following group:

!, ", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \, ], ^, _, {, |,}, ~ and `

Generate a string containing 2 lower case letters followed by 2 digits.
iex> RandomStringGenerator.generate("lldd")
Generate a string containing 2 upper case letters.
iex> RandomStringGenerator.generate("LL")
Generate a string containing 2 punctuations.
iex> RandomStringGenerator.generate("pp")


Everything that is not l,L,d,p and c is treated as a delimiter so the pattern -dl? is interpreted as a hyphen followed by a digit followed by a lower case letter followed by a question mark.

Generate a string containing 2 letters followed by a hyphen.
iex> RandomStringGenerator.generate("ll-")


In order to generate a string containing the characters l,L,d and p as a delimiter, you need to use the backslash twice in order to scape it.

Generate a string containing 2 digits followed by the letters lLdp.
iex> RandomStringGenerator.generate("dd\\l\\L\\d\\p")

Custom Chars

I order to generate a string based on a given custom pattern ccc a list of possible values need to be passed as an argument.

Generate a string containing 3 custom chars from the list ["+", "-", "/", "*"].
iex> RandomStringGenerator.generate("ccc", ["+", "-", "/", "*"])

If no custom char list is passed the with character c it will be treated as a delimiter as in the example below where it generates a string containing one digit followed by the letter c followed by another digit

iex> RandomStringGenerator.generate("dcd")


In order to generate a string based on a given patter Lldd where those characters are placed in a random order, the shuffle/1 function should be used.

Generate a string containing 2 lower case letters, 2 digits in random order.
iex> RandomStringGenerator.generate("Lldd") |> RandomStringGenerator.shuffle()

Full documentation at https://hexdocs.pm/random_string_generator.