gpt4 book ai didi

javascript - 跨浏览器随机字符串 (Math.random()*1e32).toString(36)

转载 作者:可可西里 更新时间:2023-11-01 02:25:39 32 4
gpt4 key购买 nike

我使用 (Math.random()*1e32).toString(36) 作为一个简单的随机字符串生成器。它非常简单并且运行良好并满足我的需求(临时随机用于 id 等)

在 chrome、safari、firefox 和 ie Math.random()*1e32 中生成如下数字:8.357963780872523e+31 :-)

  • 在 chrome、safari 和 firefox 中,此类数字被转换为字符串 (8.357963780872523e+31).toString(36) -> 221fr2y11ebk4cog84wok 这正是我想要的。
  • 但是在 ie11 中,字符串结果是 6.936gwtrpf69(e+20)

如何以跨浏览器的方式从 8.357963780872523e+31 获取相同的字符串 221fr2y11ebk4cog84wok

顺便说一句:我从这个线程中得到了这个随机字符串的想法:Random alpha-numeric string in JavaScript?

最佳答案

请记住,Math.random() 返回一个介于 0 和 1(不含)之间的值,并且 JavaScript 中的数字根据 IEEE-754 具有 53 位尾数,这是一种安全的获取方式一个随机整数将是

Math.random() * Math.pow(2, 54)

因此可以从中获得一个随机的字母数字字符串

(Math.random() * Math.pow(2, 54)).toString(36)

请注意,不能保证字符数,可以是 1 到 11 之间的任何字符,具体取决于随机值的数量级。

关于javascript - 跨浏览器随机字符串 (Math.random()*1e32).toString(36),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32625702/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com