Generate a random string based on a regular expression

Solution 1:

I have seen fairly good solutions in perl and ruby on github, but I think there are technical issues that make a complete solution impossible. For example, /[0-9]+/ has an infinite upper bound, which is not practical for selecting random numbers from.

Never seen it in JavaScript, but you could translate.


EDIT: After googling for a few seconds... http://fent.github.com/randexp.js/

Solution 2:

if you know what the regular expression is, you can just generate random strings, then use a function that references the index of the letters and changes them as needed. Regex expressions vary widely, so it will be difficult to find one in particular that satisfies all possible regex.

Solution 3:

Your question is pretty open so hopefully this steers you to the right solution. Get the current time (in seconds), MD5 it, check it against a REGEX, return the match.

Running Example: http://jsfiddle.net/MattLo/3gKrb/

Usage: RandString(/([A-Za-z])/ig); // expected to be a string

Solution 4:

For JavaScript, the following modules can generate a random match to a regex:

  • pxeger
  • randexp.js
  • regexgen