JavaScript生成随机数和生成随机字符串的5种方法【随手收藏】

4,185 阅读1分钟

第1种:

生成随机字符串,可改变长度

function randomString(e) { 
	//形参e,需要产生随机字符串的长度   
	//如果没有传参,默认生成32位长度随机字符串
    e = e || 32;
    //模拟随机字符串库
    var t = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678",
    a = t.length,//字符串t的长度,随机数生成最大值
    n = "";
    for (i = 0; i < e; i++) {
    	//随机生成长度为e的随机字符串拼接
        n += t.charAt(Math.floor(Math.random() * a));
    }
    //返回随机组合字符串
    return n
}
console.log(randomString());

第2种:

生成随机数

// 本例子代表生成100000-999999的随机数
function getRandomNum(min,max){
//可选择最小值和最大值,生成一个区间中的随机数
	var range = max - min;
	var rand = Math.random();
	return(min + Math.round(rand * range));
}
var num = getRandomNum(100000,999999);
console.log(num);

第3种:

对定义的数组字符集进行随机选取

var str = ['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()*16);
         res += str[id];
     }
     return res;
}
console.log(generateMixed(6));

第4种:

生成随机数转成36进制,再截取部分

//Math.random() 生成随机数字, eg: 0.123456
//.toString(36) 转化成36进制 : "0.4fzyo82mvyr"
//.slice(-8); 截取最后八位 : "yo82mvyr"
var str = Math.random().toString(36).slice(-6);
console.log(str);

第5种:

先对字符串集合随机排列,再随机输出指定的长度

function randomString(length) {
    var str = '0123456789abcdefghijklmnopqrstuvwxyz';
    var result = '';
    for (var i = length; i > 0; --i) 
    	//根据需要的长度做循环
    	//先对字符串集合str随机排列,再随机输出拼接
        result += str[Math.floor(Math.random() * str.length)];
    return result;
}
console.log(randomString(6));