views:

284

answers:

3

Hey,

for my selenium tests i need an value provider to get a 5-digit number in every case. The problem with javascript is that the api of Math.random only supports the genration of an 0. starting float. So it has to be between 10000 and 99999.

So it would be easy if it would only generates 0.10000 and higher, but it also generates 0.01000. So this approach doesnt succeed:

Math.floor(Math.random()*100000+1)

Is it possible to generate a 5-digit number in every case (in an expression!) ?

+3  A: 

Yes, you can create random numbers in any given range:

var min = 10000;
var max = 99999;
var num = Math.floor(Math.random() * (max - min + 1)) + min;

Or simplified:

var num = Math.floor(Math.random() * 90000) + 10000;
Guffa
+5  A: 

What about:

Math.floor(Math.random()*90000) + 10000;
Rubens Farias
+1  A: 

if you want to generate say a zipcode, and don't mind leading zeros as long as it's 5 digits you can use:

(""+Math.random()).substring(2,7)
miaubiz