前几天写了篇利用PHP生成唯一订单号的方法,其中利用到了PHP中的随机,那么今天就来说一说,利用JS生成随机数的几种方法。

有JS有现成的取随机数的函数,下面就能利用到几种,可以生成规定的两个数值之间的随机数,也可以生成一串随机的字符串

利用JS编写函数,随机两个值之间的数字

代码

我们先写出一个取两个数值之间的随机数的函数

function GetRandomNum(Min,Max){   
    var Range = Max - Min;   
    var Rand = Math.random();   
    return(Min + Math.round(Rand * Range));   
}

调用上面的函数,并取1到10之间的一个随机数

调用代码如下

//飞鸟慕鱼博客
var num = GetRandomNum(1,10);   
alert(num);

代码截图

JS随机数,JS随机字符串,Math.random(),Math.round(num),Math.ceil(n)

上面用到的函数解释

Math:数学对象,提供对数据的数学计算。

Math.random(); 结果为0-1间的一个随机数(包括0,不包括1) 

Math.round(num); 参数num为一个数值,函数结果为num四舍五入后的整数。

用Math.round(Math.random());可均衡获取0到1的随机整数。

用Math.round(Math.random()*10);时,可基本均衡获取0到10的随机整数,其中获取最小值0和最大值10的几率少一半。

利用JS生成一串随机的字符串

我们可以巧妙的利用生成的随机,可以获取一个数组中不同下标的值,来达到生成随机不同字符串的目的

定义一个数组chars

代码

var chars =['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G'];

定义函数,并随机取出数组中的值,组合成字符串

代码

function generateMixed(n) {
    var res = "";
    for(var i = 0; i < n ; i ++) {
        var id = Math.ceil(Math.random()*17);
        res += chars[id];
    }
    return res;
}

代码注释:

利用一个自定义的数组并随机生成它的下标的形式,来达到输出随机字符串的形式,

数组chars 可以自定义,但是他的个数减去1再与Math.random()生成的随机数相乘,不然会出现空值的情况,导致函数运行失败。

代码截图

JS随机数,JS随机字符串,Math.random(),Math.round(num),Math.ceil(n)

上用用到的JS函数解释

Math.ceil(n); 返回大于等于n的最小整数。

用Math.ceil(Math.random()*10);时,主要获取1到10的随机整数,取0的几率极小。

Math.floor(n); 返回小于等于n的最大整数。

用Math.floor(Math.random()*10);时,可均衡获取0到9的随机整数。

PS:这篇文章写的有点乱,有时间了再整理一下。