【问题标题】:JavaScript number validationJavaScript 号码验证
【发布时间】:2015-04-23 03:39:19
【问题描述】:

我试图在 JS 中验证一个数字。我有一个while循环来检查数字是否在一个范围内并且它是一个数字。循环可以检查它是否在范围内,但不能检查数字是否有效(即不是 NaN)。我已经尝试过 int 和 float 但都没有工作。

代码:

while (isNaN(midday) == 'true' || midday >= 50){
        //validate that the number is w/n an expected range (0-50)
        alert("You entered an out out range or incorrect number")
        var midday = prompt("Enter number: " + pn);
        midday = parseFloat(midday);
    };

感谢您的帮助:如果这看起来很简单,对不起!

【问题讨论】:

  • true 不等于值 true 的字符串。
  • 谢谢!!那行得通……把“真”变成真的;不是字符串!

标签: javascript validation int


【解决方案1】:

isNaN 方法返回布尔值 true/false。您正在将它与字符串值true 进行比较。字符串值true 不等于布尔值true。您可以使用

if (isNaN(midday) == true || ...)

或更简单:

if (isNaN(midday) || ... )

【讨论】:

    【解决方案2】:

    true 是一个符号,而不是一个字符串。你有“真实”而不是真实。试试这个。

    var midday = 'asdf';
    if (isNaN(midday) || 
    midday >= 50) {
    alert('isNan == true or >= 50');
    }
    else {
    alert('none is true');
    }
    

    【讨论】:

      【解决方案3】:

      isNan 返回一个布尔值。你不需要检查它是否是真的。

      var midday = prompt("Enter number: ");
      if (isNaN(midday)){
              alert("Not a number")
      }
      else { alert('Your number is ' + midday); }
      

      您可以在这里查看:http://jsfiddle.net/ (我改了一段时间的 if 因为我不喜欢 while 循环,当然你可以根据自己的目的进行更改 :))

      【讨论】:

      • 嗨,谢谢。我有点需要它以我设置的方式工作,但无论如何谢谢;好答案!
      猜你喜欢
      • 2011-09-05
      • 1970-01-01
      • 1970-01-01
      • 2013-09-27
      • 2014-11-30
      • 2013-01-01
      • 2011-05-19
      • 2013-08-24
      • 1970-01-01
      相关资源
      最近更新 更多