Math.random()结果为0-1间的随机数(包括0,不包括1)
Math.floor( n )参数为Number 类型 ,函数结果 为num 的整数部分
Math.round( n ) ; 参数为Number 类型。函数结果 为num 四舍五入部分
Math.ceil( n )参数为Number类型。 函数结果为大于等于n的整数
Math.ceil(Math.random()*10) : 主要获取1到10的随机整数,取0的几率极小。
Math.round(Math.random()) : 可均衡获取0到1的随机整数
Math.round(Math.random()*10) 可基本均衡获取0到10的随机整数,其中获取最小值0和最大值10的几率少一半
Math.floor(Math.random()*10) 可均衡获取0到9的随机整数
例子:
1. 实现一个 随机 汉字
randomChi(){ // 随机生成汉字
return `\\u${Math.round(Math.random() * 20901 + 19968 ).toString(16)}`
}
2. 实现一个n - m 的整数 ( 参照于 http://www.jb51.net/article/56019.htm )
生成 n-m , 包含n 但不包含 m的整数
第一步算出 m -n的值,假设等于 w
第二步 Math.random( ) * w
第三步 Math.random() * w +n
第四步 parseInt( Math.random() * w +n, 10)
生成一个 n-m ,包含 m 但不包含 n的整数
第一步算出 m-n的值,假设等于w
第二步Math.random()*w
第三步Math.random()*w+n
第四步Math.floor(Math.random()*w+n) + 1
生成一个不包含 n -m 但都不包含 n 和 m
第一步算出 m-n-2的值,假设等于w
第二步Math.random()*w
第三步Math.random()*w+n +1
第四步Math.round(Math.random()*w+n+1) 或者 Math.ceil(Math.random()*w+n+1)
生成n-m,包含n和m的随机数:
第一步算出 m-n的值,假设等于w
第二步Math.random()*w
第三步Math.random()*w+n
第四步Math.round(Math.random()*w+n) 或者 Math.ceil(Math.random()*w+n)
实例: 生成800-1500的随机整数,包含800但不包含1500
1500-800 = 700
Math.random()*700
var num = Math.random()*700 + 800
num = parseInt(num, 10)
更多实例 请查看 https://github.com/Mrangmaomao
直接调用如randomWord(1,6,10)产生6到10位的随机密码,如果要显示出来,要么alert(),要么显示到某个HTML元素中。下面给个简单示例,你可以保存为html文件后打开TEST 示例效果简单代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JS生成验证码</title>
<style type="text/css">
.code {
background-image: url(code.jpg)
font-family: Arial
font-style: italic
color: Red
border: 0
padding: 2px 3px
letter-spacing: 3px
font-weight: bolder
}
.unchanged {
border: 0
}
</style>
<script language="javascript" type="text/javascript">
var code//在全局 定义验证码
function createCode() {
code = ""
var codeLength = 6//验证码的长度
var checkCode = document.getElementById("checkCode")
var selectChar = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9,'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z')//所有候选组成验证码的字符,当然也可以用中文的
for (var i = 0i <codeLengthi++) {
var charIndex = Math.floor(Math.random() * 36)
code += selectChar[charIndex]
}
//alert(code)
if (checkCode) {
checkCode.className = "code"
checkCode.value = code
}
}
function validate() {
var inputCode = document.getElementById("input1").value
if (inputCode.length <= 0) {
alert("请输入验证码!")
} else if (inputCode != code) {
alert("验证码输入错误!")
createCode()//刷新验证码
} else {
alert("^-^ OK")
}
}
</script>
</head>
<body onload="createCode()">
<form action="#">
<input type="text" id="input1" /><input type="text" onclick="createCode()" readonly="readonly" id="checkCode" class="unchanged" style="width: 80px" /><br />
<input id="Button1" onclick="validate()" type="button" value="确定" />
</form>
</body>
</html>
注意别用在实际生产项目中