我想要一个5个字符的字符串,由从集合[a-zA-Z0-9]
中随机挑选的字符组成。
用JavaScript做这件事的最好方法是什么?
发布于 2015-01-03 03:18:14
Math.random不适合这种事情
选项1
如果你能在服务器端做到这一点,只需使用加密模块-
结果字符串的长度将是您生成的随机字节的两倍;编码为十六进制的每个字节是2个字符。20个字节将是40个十六进制字符。
选项2
如果您必须在客户端执行此操作,也许可以尝试uuid模块-
选项3
如果你必须在客户端这样做,并且你不需要支持旧的浏览器,你可以在没有依赖的情况下做到这一点。
有关crypto.getRandomValues
的更多信息,请访问
crypto.getRandomValues()
方法允许您获得加密的强随机值。作为参数给出的数组填充了随机数(在其密码意义上是随机的)。
下面是一个小的控制台示例-
对于IE11支持,您可以使用-
有关浏览器的覆盖范围,请参阅https://caniuse.com/#feat=getrandomvalues
发布于 2016-07-28 04:24:13
简短、简单、可靠
恰好返回5个随机字符,而不是这里找到的一些排名最高的答案。
发布于 2015-10-15 19:11:48
最紧凑的解决方案,因为slice
比substring
短。从字符串末尾减去可以避免random
函数生成的浮点符号:
甚至是
更新:增加了一个使用btoa
方法的方法:
https://stackoverflow.com/questions/1349404
复制相似问题