这是一个随机数的例子,可是每次随机数他都会有重复的字母或者数字出现,我想问一下怎么让他出来的随机数不一样呢!其实就是去重,请大神帮忙解决???谢谢
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<h3>验证码</h3>
<div id="box" style="width:200px; height:50px; background:#b52096;
color:#000; font-size:28px; text-align:center; line-height:50px; letter-spacing:0.5em;"></div>
</body>
</html>
<script type="text/javascript">
//数学方法:
//Math.ceil(); 向上取整
//Math.floor(); 向下取整
//Math.round(); 四舍五入
//Math.abs(); 绝对值
//Math.random(); 随机数
var oDiv = document.getElementById("box");
var str = "";
function sjMath(len) {
for (var i = 0; i < len; i++) {
var arr = "QWERTYUIOPLKJHGFDSAZXCVBNM1234567890";
var n = Math.round(Math.random() * 34);
var sj = arr.charAt(n);
str += sj;
};
oDiv.innerHTML = str;
};
sjMath(5);
</script>
var arr="Q,W,E,R,T,Y,U,I,O,P,L,K,J,H,G,F,D,S,A,Z,X,C,V,B,N,M,1,2,3,4,5,6,7,8,9,0"; var array=arr.split(","); for(var i=0;i<len&&array.length>0;i++) { var n=Math.round(Math.random()*array.length); var sj=array[n]; array.splice(n,1); str+=sj; }
楼主啊,我写的有个问题,有极小概率n=array.length,这个时候array[n]会报错,你自己加下判断哈
你把"QWERTYUIOPLKJHGFDSAZXCVBNM1234567890"通过给随机掉,然后顺序来找单个字符就实现了
QWERTYUIOPLKJHGFDSAZXCVBNM1234567890 随机打乱:
var str = "QWERTYUIOPLKJHGFDSAZXCVBNM1234567890";
for(var i = 0;i<34;i++){
var n = Math.round(Math.random() * 34);
var temp = str[i];
str[n]=str[i];
str[i]=temp;
}
具体原理就是这样了,不过语法可能是错的,你自己实现一下