只允许在输入字段中使用整数

Only allow whole numbers in input field

本文关键字:整数 字段 输入      更新时间:2023-09-26
function isNumber(n) {
    var j = n.trim();
  return (j % 1 === 0 && j != "");
}

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

你可以为此使用正则表达式

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>

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

滥用 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。