我如何检查如果一个变量是一个整数在JavaScript,并抛出一个警告,如果它不是?我试过了,但不管用:
<html>
<head>
<script type="text/javascript">
var data = 22;
alert(NaN(data));
</script>
</head>
</html>
我如何检查如果一个变量是一个整数在JavaScript,并抛出一个警告,如果它不是?我试过了,但不管用:
<html>
<head>
<script type="text/javascript">
var data = 22;
alert(NaN(data));
</script>
</head>
</html>
当前回答
为文本框添加类numOnly,
$(document).on("input", ".numOnly", function(e) {
this.value = this.value.replace(/[^0-9\$]/g,'');
if(this.value!=""){
alert('Integer Number.');
}else{
alert('Not an Integer Number.');
}
});
这对我有用。试试这个
你可以使用键盘,键上,键下等,而不是输入。
其他回答
检查像poster这样的整数是否需要:
if (+data===parseInt(data)) {return true} else {return false}
注意+在data前面(将字符串转换为数字),===表示精确。
下面是一些例子:
data=10
+data===parseInt(data)
true
data="10"
+data===parseInt(data)
true
data="10.2"
+data===parseInt(data)
false
ECMA-262 6.0 (ES6)标准包括编号。isInteger函数。
为了增加对旧浏览器的支持,我强烈建议使用强大的和社区支持的解决方案:
https://github.com/paulmillr/es6-shim
这是一个纯粹的ES6 JS polyfills库。
注意,这个库需要es5-shim,只需遵循README.md即可。
接受的答案不为我工作,因为我需要检查int/float和字母。因此,尝试这将工作的int/float和字母检查
function is_int(value){
if( (parseInt(value) % 1 === 0 )){
return true;
}else{
return false;
}
}
使用
is_int(44); // true
is_int("44"); // true
is_int(44.55); // true
is_int("44.55"); // true
is_int("aaa"); // false
“公认的”答案是错误的(如下面的一些评论所指出的)。 这个修改可以使它工作:
if (data.toString() === parseInt(data, 10).toString())
alert("data is a valid integer")
else
alert("data is not a valid integer")
这将解决另一个场景(121.),结束处有一个点
function isInt(value) {
var ind = value.indexOf(".");
if (ind > -1) { return false; }
if (isNaN(value)) {
return false;
}
var x = parseFloat(value);
return (x | 0) === x;
}