我如何检查如果一个变量是一个整数在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>
当前回答
你也可以试试这种方法
var data = 22;
if (Number.isInteger(data)) {
console.log("integer");
}else{
console.log("not an integer");
}
or
if (data === parseInt(data, 10)){
console.log("integer");
}else{
console.log("not an integer");
}
其他回答
为文本框添加类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.');
}
});
这对我有用。试试这个
你可以使用键盘,键上,键下等,而不是输入。
对于没有分隔符的正整数值:
return ( data !== '' && data === data.replace(/\D/, '') );
测试 1. 如果不是空的, 2. 如果value等于在其值中替换非数字字符的结果。
我必须检查一个变量(字符串或数字)是否为整数,我使用了这个条件:
function isInt(a){
return !isNaN(a) && parseInt(a) == parseFloat(a);
}
http://jsfiddle.net/e267369d/1/
其他一些答案也有类似的解决方案(依赖于parseFloat与isNaN相结合),但我的答案应该更直接和自我解释。
编辑:我发现我的方法失败的字符串包含逗号(如“1,2”),我也意识到,在我的特定情况下,我希望函数失败,如果字符串不是一个有效的整数(应该失败的任何浮点数,甚至1.0)。这是我的函数Mk II
function isInt(a){
return !isNaN(a) && parseInt(a) == parseFloat(a) && (typeof a != 'string' || (a.indexOf('.') == -1 && a.indexOf(',') == -1));
}
http://jsfiddle.net/e267369d/3/
当然,如果你真的需要这个函数接受整数浮点数(1.0之类的东西),你总是可以删除点条件a.indexOf('.') == -1。
检查变量是否等于相同的变量四舍五入为整数,就像这样:
if(Math.round(data) != data) {
alert("Variable is not an integer!");
}
你可以使用regexp:
function isInteger(n) {
return (typeof n == 'number' && /^-?\d+$/.test(n+''));
}