web-dev-qa-db-fra.com

Expression JavaScript pour générer un nombre à 5 chiffres dans tous les cas

pour mes tests Selenium, j'ai besoin d'un fournisseur de valeur pour obtenir un numéro à 5 chiffres dans tous les cas. Le problème avec javascript est que l'API de Math.random ne prend en charge que la génération d'un 0. flotteur de départ. Il faut donc que ce soit entre 10000 et 99999.

Il serait donc facile de ne générer que 0.10000 et plus, mais il génère également 0.01000. Donc, cette approche ne réussit pas:

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

Est-il possible de générer un numéro à 5 chiffres dans tous les cas (dans une expression!)?

58
Christopher Klewes

Qu'en est-il de:

Math.floor(Math.random()*90000) + 10000;
134
Rubens Farias

Oui, vous pouvez créer des nombres aléatoires dans n'importe quelle plage donnée:

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

Ou simplifié:

var num = Math.floor(Math.random() * 90000) + 10000;
47
Guffa

si vous voulez générer, disons, un code postal, et ne vous occupez pas des zéros de tête tant que c'est 5 chiffres que vous pouvez utiliser:

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

Vous pouvez obtenir un entier aléatoire comprenant tous les nombres min et max donnés à l'aide de la fonction suivante:

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

Pour plus d'exemples et d'autres cas d'utilisation, consultez la documentation Math.random MDN .

1
Tarek