首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在JavaScript中生成随机字符串/字符

在JavaScript中生成随机字符串/字符
EN

Stack Overflow用户
提问于 2009-08-29 05:14:41
回答 28查看 2M关注 0票数 2.3K

我想要一个5个字符的字符串,由从集合[a-zA-Z0-9]中随机挑选的字符组成。

用JavaScript做这件事的最好方法是什么?

EN

回答 28

Stack Overflow用户

发布于 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

票数 701
EN

Stack Overflow用户

发布于 2016-07-28 04:24:13

简短、简单、可靠

恰好返回5个随机字符,而不是这里找到的一些排名最高的答案。

票数 219
EN

Stack Overflow用户

发布于 2015-10-15 19:11:48

最紧凑的解决方案,因为slicesubstring短。从字符串末尾减去可以避免random函数生成的浮点符号:

甚至是

更新:增加了一个使用btoa方法的方法:

票数 154
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1349404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档