【问题标题】:How to validate a number being an integer如何验证数字是整数
【发布时间】:2016-06-27 03:26:29
【问题描述】:

最近我一直在研究一个“微调器”,它每次将数字增加和减少 1,但是我想向程序添加验证,以便 只接受整数(不接受小数) 但是我没有成功。

我已经研究过 NaN 和 parseValue(s) 的使用,但我还没有找到将其包含到我的脚本中的方法,任何帮助将不胜感激。给出的示例中的所有代码都按我的意愿工作,因此我只需要验证。

代码:HTML

<!DOCTYPE html>
<html>
    <head>
        <h1>Spinners in JavaScript</h1>
    </head>
    <body>
        <p id="textDisplay()">0</p>

        <div align="middle">
            <button onclick="spinUp()">+1</button>
            <button onclick="spinDown()">-1</button>
        </div>
    </body>
</html>

JavaScript

currentNumber = 0;

function spinUp() {
    if(currentNumber==100){
    currentNumber = 0;
    document.getElementById("textDisplay").innerHTML = currentNumber;

    } else if(currentNumber < 100) {
    currentNumber++
    document.getElementById("textDisplay").innerHTML = currentNumber;
    }
}

function spinDown() {
    if(currentNumber>0){
    currentNumber--;
    document.getElementById("textDisplay").innerHTML = currentNumber;

    } else if(currentNumber<=0){
    window.alert("Too low! Higher!");
    currentNumber++;
    document.getElementById("textDisplay").innerHTML = currentNumber;
    }

}

【问题讨论】:

  • 你从 DOM 获得的东西和数据(基本上来自 html 标签、属性等的数据)都是字符串,你必须将它们转换为整数,使用 parseInt(string, base), base默认为 10。

标签: javascript validation integer decimal


【解决方案1】:

您可以使用 === 运算符,如下所示:

if (data === parseInt(data, 10))
    alert("data is integer")
else
    alert("data is not an integer")

How to check if a variable is an integer in JavaScript?

【讨论】:

  • 然而 "100" === parseInt("100") 返回 false。因此,此方法似乎不适用于来自 parseInt() 的有效整数字符串。
  • ==比较值,但是===比较值和类型,js中的===在其他语言中是==。
【解决方案2】:

你可以使用这样的方法:

if (number != Math.round(number)){
    alert("Enter a whole number");
  }

【讨论】:

    【解决方案3】:

    v === v | 0;
    如果 v 是整数,则为 true,否则为 false。

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 2021-04-19
      • 2012-12-03
      • 2022-12-05
      • 2021-06-02
      • 2019-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多