仅允许输入字段中的整数

时间:2015-03-16 02:02:20

标签: javascript decimal

function isNumber(n) {
    var j = n.trim();
  return (j % 1 === 0 && j != "");
}

如果输入的值为“14.0”,我的函数仍然返回true。它应该只允许没有任何小数的整数。

3 个答案:

答案 0 :(得分:5)

您可以使用正则表达式

function isWhole(n) {
  return /^\d+$/.test(n);
}

$("#number").change(function() {
  if (isWhole($(this).val())) {
    $(".error").hide();
  } else {
    $(".error").show();
  }
});
.error {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="number" name="number" />
<p class="error">Whole numbers only</p>

答案 1 :(得分:1)

尝试将其视为字符串,并使用匹配函数和正则表达式来查看是否存在小数。您可以使用yourVariable.match (/[0-9]*(\.)[0-9]*/)。如果那里有小数,它将返回true。

答案 2 :(得分:0)

滥用round()函数。这将摆脱垃圾:

function isNumber(n) {
  if(Math.round(n)==n && n.length==(Math.round(n)).length) 
    return n;
  else return false;
}

本质上,如果数字不是整数,则此函数返回false,如果是整数,则返回完整的整数。

输入14.0应该返回false

输入13.5应该返回false

输入13应返回13.