js自定义函数生成随机数的方法一:
复制代码 代码示例:
/*
*@desc:生成
随机字符串
*@remark:toString方法可以接收一个基数作为参数的原理,这个基数从2到36封顶。如果不指定,默认基数是10进制
*/
function generateRandomAlphaNum(len) {
var rdmString = "";
for (; rdmString.length < len; rdmString += Math.random().toString(36).substr(2));
return rdmString.substr(0, len);
}
js自定义函数生成随机数的方法二:
复制代码 代码示例:
//JS生成GUID函数,类似.net中的NewID();
function S4() {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}
function NewGuid() {
return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
}
js自定义函数生成随机数的方法三:
复制代码 代码示例:
//JS生成GUID函数,类似.net中的NewID();
function newGuid() {
var guid = "";
for (var i = 1; i <= 32; i++) {
var n = Math.floor(Math.random() * 16.0).toString(16);
guid += n;
if ((i == 8) || (i == 12) || (i == 16) || (i == 20))
guid += "-";
}
return guid;
}
js自定义函数生成随机数的方法四:
复制代码 代码示例:
/*
*@desc:生成随机字符串
*@demo:console.log(ranStr());
*/
;(function(){
//数字0-9,大写字母,小写字母,ASCII或UNICODE编码(十进制),共62个
var charCodeIndex = [[48,57],[65,90],[97,122]];
var charCodeArr = [];
function getBetweenRound(min,max){
return Math.floor(min+Math.random()*(max-min));
};
function getCharCode(){
for(var i=0,len=3;i<len;i++){
var thisArr = charCodeIndex[i];
for(var j=thisArr[0],thisLen=thisArr[1];j<=thisLen;j++){
charCodeArr.push(j);
}
}
}
function ranStr(slen){
slen = slen || 20;
charCodeArr.length<62 && getCharCode();
var res = [];
for(var i=0;i<slen;i++){
var index = getBetweenRound(0,61);
res.push(String.fromCharCode(charCodeArr[index]));
}
return res.join('');
};
this.ranStr = ranStr;
})();
1,使用内置的随机数发生方法:
Math.random(); //该方法产生一个0到1之间的
浮点数。
Math.floor(Math.random()*10+1); //1-10
Math.floor(Math.random()*24);//0-23
2,基于时间,亦可以产生随机数:
var now=new Date();
var number = now.getSeconds(); //这将产生一个基于目前时间的0到59的整数。
var now=new Date();
var number = now.getSeconds()%43; //这将产生一个基于目前时间的0到42的整数。
3,随机数发生器程序
<script language="
javascript"><!--
// The Central Randomizer 1.3 (C) 1997 by Paul Houle (houle@msc.cornell.edu)
// See: http://www.msc.cornell.edu/~houle/javascript/randomizer.html
rnd.today=new Date();
rnd.seed=rnd.today.getTime();
function rnd() {
rnd.seed = (rnd.seed*9301+49297) % 233280;
return rnd.seed/(233280.0);
};
function rand(number) {
return Math.ceil(rnd()*number);
};
// end central randomizer. -->
</script>
四位随机数功能:
从数字和字母中随机抽取四个不重复的字符。
复制代码 代码示例:
function only(ele,arr){
if(arr.length==0){
return true;
}
for(var j=0;j<arr.length;j++){
if(ele==arr[j]){
return false;
}else{
return true;
}
}
}
var arr=[0,1,2,3,4,5,6,"a","b","c","d","e","f","g"];
(function(){
var randNum=null;
var old=[];
var str="";
function done(){
randNum=Math.floor(Math.random()*14);
if(only(randNum,old)){
str=str+arr[randNum];
old.push(randNum);
}
else{
done();
}
}
for(var index=0;index<4;index++){
done();
}
console.log(str);
})(arr)
一.代码注释:
1.function only(ele,arr){},此函数可以实现判断指定的索引是否已经使用过了,放置随机数出现重复。
2.if(arr.length==0){},如果数组为空,那么就说明不可能是重复的情况,返回true。
3.for(var j=0;j<arr.length;j++){},数组不为空,就遍历数组中的元素,进行比对,没有重复的就返回true,否则返回false。4.var arr=[0,1,2,3,4,5,6,"a","b","c","d","e","f","g"],获取随机数的数组,当然可以进行扩充。
5.(function(){})(arr),一个自执行函数,并传递一个参数。
6.var randNum=null,声明一个变量并赋初值为null,用来存储随机生成的数组索引。
7.var old=[],创建一个空数组,用来存储已经出现过的数组索引值。
8.var str="",创建一个空字符串,用来存放生成的随机数。
9.function done(){},此函数可以用来获取一个随机数。
10.randNum=Math.floor(Math.random()*14),获取数组的索引值。
11.if(only(randNum,old)){
str=str+arr[randNum];
old.push(randNum);
},判断是否已经使用过,如果没有,则获取数组元素,并追加到str字符串中,最后将此索引值追加到old数组。
12.else{ done();
},如果已经用过,那么再获取一次,这里是使用递归的方式。
13.for(var index=0;index<4;index++){
done();
},使用for循环获取4个随机数。