js-生成随机字符串

JavaScript08

js-生成随机字符串,第1张

通过 Math.random() 生成随机小数[0, 1),使用 toString(36) 转化为36进制的字符串,substring切割掉前面的 0. 。

存在问题:当为0时会返回空字符串。最多生成10位字符串,而字符串化时会删除尾随零,所以实际字符串长度不定

stackoverflow

只生成16进制的字符串,低版本浏览器不支持

Crypto

所有随机的东西都要用到随机数,js中是用到Math.random()这个方法,获取0~1之间的数。

1、Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值,是Java语言常用代码。例如:double a=Math.random()*(3-1)+1,设置一个随机1到3的变量。

2、生成一个4位的随机字符串代码如下:

public static void main(String[]args){

String result=""

for(inti=0i<4i++){

//生成97-122的int型的整型

int intValue=(int)(Math.random()*26+97)

//将intValue强制转化成char类型后接到result后面

result=result+(char)intValue

}

//输出字符串

System.out.println(result)

}

//产生随机标识符 前面以四个字母开头长度为n1+n2的字符串

function getUuid() {

var s = []

var s1 = []

var hexDigits1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

var hexDigits1length = hexDigits1.length

var hexDigits2 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

var hexDigits2length = hexDigits2.length

var n1 = 4//随机前端字母字符串长度

var n2 = 32//随机后端数字字母字符串长度

for(var i = 0i <n1i++) {

s[i] = hexDigits1.substr(Math.floor(Math.random() * (hexDigits1length - 1)), 1)

}

for(var i = 0i <n2i++) {

s1[i] = hexDigits2.substr(Math.floor(Math.random() * (hexDigits2length - 1)), 1)

}

////数组合并 a.push.apply(a,b)//将b合并到a中

s.push.apply(s, s1)//将s1合并到s中

//第3个位置插入-

s[2] = "-"

//第4个字符之后插入最多3个-

for(var i = 0i <3i++) {

s[Math.floor(Math.random() * (n1 + n2 - 5)) + 4] = "-"

}

let uuid = s.join("")

return uuid

}