JavaScript expression to generate a 5-digit number in every case

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 generation 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 doesn't succeed:

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

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

Answers


What about:

Math.floor(Math.random()*90000) + 10000;

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;

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)

You can get a random integer inclusive of any given min and max numbers using the following function:

function getRandomIntInclusive(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

For more examples and other use cases, checkout the Math.random MDN documentation.


Need Your Help

AWS Difference between a snapshot and AMI

amazon-web-services amazon-ec2

So I am having trouble working out what, specifically is the difference between these two.

Is there a method reference for a no-op (NOP) that can be used for anything lambda?

java lambda functional-programming java-8

This may sounds like a strange question, but is there a way to refer to a standard no-op (aka null operation, null-pattern method, no-operation, do-nothing method) method for a Lambda in Java 8.