gpt4 book ai didi

javascript - 如何编写一个函数来检查输入是否实际上是整数? (Javascript)

转载 作者:行者123 更新时间:2023-11-28 20:02:46 25 4
gpt4 key购买 nike

我最近问了一个标题为“为什么我的警报总是显示错误信息?”的问题。 (补充)”,其中我很感激有人问了我的问题。然而,现在我有另一个关于我的计算器 Javascript 程序的问题。

JS:

function activeButton() 
{
if (document.getElementById("radioAdd").checked === true)
{
var valueOne = Number(document.getElementById("number1".value));
var valueTwo = Number(document.getElementById("number2".value));
var result = valueOne + valueTwo;
alert("Your Result Is " + result);
}
}

HTML:

<div id="wrapper">
<div id="form-move">
<form name = "calculator" id="calculator">
<div id="numberInput">
<input type="number" name="inputNumber1" id="number1" placeholder="Type or Select Your First Number" />
<input type="number" name="inputNumber2" id="number2" placeholder="Type or Select Your Second Number" />
</div>
<div id="radio-input">
<span class="title">Operators:</span>
<input type="radio" name="radioInputAdd" id="radioAdd" value="Addition" />
<label for="radioAdd">Addition</label>
<input type="radio" name="radioInputAdd" id="radioDivision" value="Division" />
<label for="radioDivision">Division</label>
<input type="radio" name="radioInputAdd" id="radioMultiply" value="Multiplication" />
<label for="radioMultiply">Multiply</label>
<input type="radio" name="radioInputAdd" id="radioSubtract" value="Subtraction" />
<label for="radioSubtract">Subtract</label>
</div>
<div class="submit">
<input type="submit" value="Enter" id="submit" onclick="activeButton()" />
</div>
</form>
</div>
</div>

对于名为“inputNumber1”和“inputNumber2”的输入类型,我想编写一个函数,允许 Javascript 检查用户给出的输入是否是整数。如果不是,用户将看到一个警告框,并被告知他们的输入不是整数,他/她必须将整数重新提交到计算器中。如果用户给出了一个整数,它将继续检查并查看单击了哪个单选按钮(如上面的函数所示)。有人可以帮助我吗?我多年来一直在寻找解决方案!

最佳答案

ECMA 6 提出了 Number.isInteger 的提案,FireFox 16 及更高版本支持。否则,可以按照 MDN 页面上给出的方式进行填充

if (!Number.isInteger) {
Number.isInteger = function isInteger (nVal) {
return typeof nVal === "number" && isFinite(nVal) && nVal > -9007199254740992 && nVal < 9007199254740992 && Math.floor(nVal) === nVal;
};
}

虽然这不是解决方案,但它是帮助您决定输入限制以及如何进行验证的重要信息。

-9007199254740991和-9007199254740991是Javascript可以处理的最小和最大安全整数。这些限制是 16 位有效数字,通常将输入限制为 15 位有效数字,以使您的正则表达式检查变得容易。用户输入作为来自 DOM 的字符串。

所以: (/^[\-+]?\d{1, 15)$/).test(userInputString)

(可以以“-”或“+”(或两者都不)开头,后跟 1 到 15 位数字)

如果这是TRUE,那么您正在使用可由Javascript处理的整数,因此您可以安全地将其强制转换为数字(+userInputStringNumber(userInputString),甚至使用 parseIntparseFloatMath 函数)

任何其他事情都会变得更加复杂,甚至可能需要使用任意算术库,例如 bignumber.js除非您不使用客户端上的号码并将其作为字符串发送到服务器以进行某些操作。

关于javascript - 如何编写一个函数来检查输入是否实际上是整数? (Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21370606/

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