Javascript 在输入字段中只允许整数

Javascript 在输入字段中只允许整数,javascript,decimal,Javascript,Decimal,如果输入值为“14.0”,我的函数仍然返回true。它应该只允许整数而不允许任何小数 滥用round()函数。这将清除垃圾: function isNumber(n) { var j = n.trim(); return (j % 1 === 0 && j != ""); } 本质上,如果数字不是整数,则此函数返回false;如果数字是整数,则返回确切的整数 输入14.0应返回false 输入13.5应返回false 输入13应该返回13。滥用round()函数。这

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

滥用round()函数。这将清除垃圾:

function isNumber(n) {
    var j = n.trim();
  return (j % 1 === 0 && j != "");
}
本质上,如果数字不是整数,则此函数返回false;如果数字是整数,则返回确切的整数

输入14.0应返回false

输入13.5应返回false

输入13应该返回13。

滥用round()函数。这将清除垃圾:

function isNumber(n) {
    var j = n.trim();
  return (j % 1 === 0 && j != "");
}
本质上,如果数字不是整数,则此函数返回false;如果数字是整数,则返回确切的整数

输入14.0应返回false

输入13.5应返回false


输入13应返回13。

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

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

您可以使用正则表达式进行此操作

函数是完整的(n){
返回/^\d+$/.test(n);
}
$(“#编号”).change(函数(){
if(isfull($(this.val())){
$(“.error”).hide();
}否则{
$(“.error”).show();
}
});
。错误{
显示:无;
}


仅限整数

您可以使用正则表达式进行此操作

函数是完整的(n){
返回/^\d+$/.test(n);
}
$(“#编号”).change(函数(){
if(isfull($(this.val())){
$(“.error”).hide();
}否则{
$(“.error”).show();
}
});
。错误{
显示:无;
}



仅限整数

为什么返回四舍五入的数字?为什么不返回Math.round(n)==n
?假设您的输入是14.0。那么数学圆(n)==n为真。当您返回n时,您仍然拥有14.0。如果你返回Math.round(n),你将得到14(期望的结果)。但是如果输入是14.0,OP希望它返回false。啊,对不起,误读了。请参阅上面的编辑(一分钟后)仍然失败:/。我真的,老实说,我认为这可能有效。你为什么要返回四舍五入的数字?为什么不返回Math.round(n)==n
?假设您的输入是14.0。那么数学圆(n)==n为真。当您返回n时,您仍然拥有14.0。如果你返回Math.round(n),你将得到14(期望的结果)。但是如果输入是14.0,OP希望它返回false。啊,对不起,误读了。请参阅上面的编辑(一分钟后)仍然失败:/。我真的,老实说,我认为这可能已经奏效了,但这并不符合OP的要求
var moon=1234.0
返回true.Hmm。。正则表达式只匹配数字,不匹配其他字符,包括。但我想这只适用于字符串。唯一的,窃取内存的谷歌浏览器。问题是在
var moon=1234.0之后;var str=moon.toString()
str
等于
“1234”
。如果1234.0是“number”类型,我想它会被视为1234。但是由于OP对变量n调用trim,我想我们可以假设它是一个字符串。@RobG也是Rob,我不认为使用jQuery来演示功能是错误的。这是简洁的,它很好地展示了一个代码的工作,因为他们可以直接从这里复制它,并知道它根据他们的需要工作。我不同意这个反jQuery团队不合理地针对任何包含jQuery的东西。这不符合OP的要求
var moon=1234.0
返回true.Hmm。。正则表达式只匹配数字,不匹配其他字符,包括。但我想这只适用于字符串。唯一的,窃取内存的谷歌浏览器。问题是在
var moon=1234.0之后;var str=moon.toString()
str
等于
“1234”
。如果1234.0是“number”类型,我想它会被视为1234。但是由于OP对变量n调用trim,我想我们可以假设它是一个字符串。@RobG也是Rob,我不认为使用jQuery来演示功能是错误的。这是简洁的,它很好地展示了一个代码的工作,因为他们可以直接从这里复制它,并知道它根据他们的需要工作。我不同意这个反jQuery团队不合理地针对任何包含jQuery的东西。如果在ES6环境中,请使用
Number.isInteger
。如果IE>=10,则对输入元素使用
pattern=“\d+”
属性。如果在ES6环境中,则使用
Number.isInteger
。如果IE>=10,对输入元素使用
pattern=“\d+”
属性。OP查找字符串整数,因此
/^\d+$/.test(value)
执行作业。OP查找字符串整数,因此
/^\d+$/.test(value)
执行作业。