使用javascript检查输入是否为整数

时间:2017-03-25 11:43:57

标签: javascript html

这就是我的尝试:

<html>
<head>
<script>
function myFunction() {
var num = document.getElementById("num").value;
if (Number.isInteger(num)) { 
document.getElementById("show").innerHTML = "Number is integer";
} else {
document.getElementById("show").innerHTML = "Number is not integer";
}
</script>
</head>
<body>
<input id = "num"></input>
<button onclick = "myFunction()">Submit</button>
<p id = "show">Result Appears Here</p>
</body>
</html>

这里的问题是我总是得到“数字不是整数”,即使数字是整数,代码应该检查输入是否为整数或者不提前感谢

3 个答案:

答案 0 :(得分:3)

value元素的#num作为string返回,如您在控制台中看到的那样。只需使用number符号将其恢复为+

另一件事 - 您在每次调用函数时都会覆盖innerHTML元素的#num属性。您必须将第二个操作document.getElementById("show").innerHTML = "Number is not integer"插入else语句以避免覆盖。

function myFunction() {
  var num = document.getElementById("num").value;
  console.log(typeof num);

  if (Number.isInteger(+num)) {
    document.getElementById("show").innerHTML = "Number is integer";
  } else {
    document.getElementById("show").innerHTML = "Number is not integer";
  }
}
<input id="num"></input>
<button onclick="myFunction()">Submit</button>
<p id="show">Result Appears Here</p>

还有另一种使用modulo检查数字是否为整数的方法。

function myFunction(num) {
  num % 1 ? console.log("Not Integer") : console.log("Integer");
}

myFunction(5);
myFunction(5.5);

答案 1 :(得分:0)

嗯,试试这个:

if(!isNaN(num)){
    if(Number.isInteger(num){
        //your code
    } else {
        //your code
    }
}

答案 2 :(得分:0)

只是一些建议:学习如何正确缩进代码:

function myFunction() {
    var num = document.getElementById("num").value;
    if (Number.isInteger(num)) { 
        document.getElementById("show").innerHTML = "Number is integer";
    }
    document.getElementById("show").innerHTML = "Number is not integer";
}

如果你这样做,你会很容易看到最后一行将用数字不是整数替换你在段落中添加的内容。

您需要else才能完成这项工作。

此外,文本框中的任何内容都是字符串,因此您必须先通过parseInt运行它。

这可能会更好:

function myFunction() {
    var num = parseInt(document.getElementById("num").value,10);
    if (Number.isInteger(num)) { 
        document.getElementById("show").innerHTML = "Number is integer";
    }
    else document.getElementById("show").innerHTML = "Number is not integer";
}

此外:

  • input void 元素,表示它没有结束标记。
  • 对于HTML属性,您实际上不应该在=符号周围留出空格,因为有些浏览器误解了这一点。例如:id="something"