【问题标题】:How to generate random a - z letter(1 letter) in JavaScript without typing all letters? [duplicate]如何在不输入所有字母的情况下在 JavaScript 中生成随机 a - z 字母(1 个字母)? [复制]
【发布时间】:2021-03-15 06:51:21
【问题描述】:

我想在 JavaScript 中生成随机 a - z 字母(1 个字母)而不输入所有字母。但我不知道怎么做。我想使用Math.floor(Math.random * ?)。但我不知道是什么?。我想在这段 HTML 代码中使用 JavaScript:

<!DOCTYPE html>
<html>
  <head>
    <title>AZ Generator</title>
  </head>
  <body>
    <script src="az-generator.js"></script>
    <button onclick="az()">Generate</button>
    <p id="p"></p>
  </body>
</html>

【问题讨论】:

  • 不使用随机数将很难做到这一点。

标签: javascript html


【解决方案1】:

你需要两件事:

  • 可以弥补数字和字符之间差距的东西,可能是String.fromCharCode()
  • 适当范围内的随机数来获取必需字符之一(对于从字符代码97开始的26个ASCII字符范围的小写字母)

所以,解决方案可以这么简单:

const randomLetter = _ => String.fromCharCode(0|Math.random()*26+97)

console.log(randomLetter())

如果您需要扩展它以获得所需长度的随机字符串(例如,15 个字符长),您可以这样做:

const randomLetter = _ => String.fromCharCode(0|Math.random()*26+97),

      randomStrOf15Chars = Array(15).fill().map(randomLetter).join('')
      
console.log(randomStrOf15Chars)      

【讨论】:

    【解决方案2】:

    您可以创建一个 0 ... 25 的随机数并加上 10 并将该数字转换为以 36 为基数的字符串。

    function az() {
       return Math.floor(Math.random() * 25 + 10).toString(36);
    }
    
    console.log(Array.from({ length: 50 }, az).join(''));

    【讨论】:

      猜你喜欢
      • 2013-04-12
      • 1970-01-01
      • 2016-02-10
      • 1970-01-01
      • 1970-01-01
      • 2017-11-05
      • 2021-09-23
      • 2018-12-13
      • 1970-01-01
      相关资源
      最近更新 更多