【问题标题】:Random char in a .js file.js 文件中的随机字符
【发布时间】:2011-06-02 07:55:09
【问题描述】:

这是字符:"*+-/";

Javascript getElementById

我怎样才能使"randt" 成为 1 个随机字符?

所以如果我输入:

document.getElementById("sms-text").innerHTML = "" + random2 + randt;

这将是前"22*""51+"

我该怎么做?

【问题讨论】:

    标签: javascript math getelementbyid var


    【解决方案1】:

    如果我理解你的问题,你会随机取一个0-3,然后找到那个位置的字符;

    var signs = "*+-/";
    
    var signId = Math.floor(Math.random() * signs.length);
    
    var sign = signs.charAt(signId);
    

    【讨论】:

      【解决方案2】:
      var str = "*+-/";
      var random_char = str[Math.floor(Math.random() * str.length)];
      

      正如其他答案所指出的,str.charAt() 也可以。

      【讨论】:

      • 所有浏览器都支持这种访问字符的方法吗?我有一个模糊的记忆,IE 不喜欢它,但我不确定。
      • @Matchu:对我来说在 IE7 中工作。不确定 IE6,但我想它也可以在那里工作。
      【解决方案3】:

      使用Math.random()Math.floor() 的组合非常简单:

      var chars = "*+-/",
          randt = chars[Math.floor(Math.random() * 4)];
      

      请注意,如果您不知道chars 中有多少个字符,可以将4 替换为chars.length

      【讨论】:

      • 即使你事先知道chars 的长度,我也会将4 替换为chars.length
      • @Bart Kiers 我也会,这取决于chars 的固定程度。
      【解决方案4】:

      只需抓取一个从 0 到字符串长度的随机数,然后像这样将字符剪掉

      var chars = "+-/";
      var char = chars[Math.floor(Math.random() * chars.length)];
      

      使用char 将是随机字符

      或者,您可以像这样将 rand 方法添加到原型中

      String.prototype.randChar = function()
      {
          return this[Math.floor(Math.random() * this.length)];
      }
      

      然后在创建的任何字符串中,您都可以像这样使用

      char = "+-.".randChar();
      

      【讨论】:

      • 标准 Javascript 实现没有全局 rand 函数:/
      【解决方案5】:

      这与您问before 的问题基本相同,只是您使用的是innerHTML 而不是document.write。产生字符串的方法是一样的,所以你可以直接使用我之前回答的函数:

      function makeid(lastNumber) {
        var possible = "*+-/";
        return lastNumber + possible.charAt(Math.floor(Math.random() * possible.length));
      }
      

      用法:

      document.getElementById("sms-text").innerHTML = makeid(random2);
      

      【讨论】:

        【解决方案6】:
        var randt=['*','+','-','/'][Math.floor(Math.random()*4)];
        

        【讨论】:

          猜你喜欢
          • 2017-05-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多