我如何检查如果一个变量是一个整数在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(data % 1 === 0){
// yes it's an integer.
}
请注意,如果你的输入也可以是文本,你想先检查它不是,那么你可以先检查类型:
var data = 22;
if(typeof data === 'number'){
// yes it is numeric
if(data % 1 === 0){
// yes it's an integer.
}
}
其他回答
接受的答案不为我工作,因为我需要检查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
为什么没有人提到Number.isInteger() ?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger
为我完美地工作,并解决了NaN开始一个数字的问题。
使用===运算符(严格相等),如下所示:
if (data === parseInt(data, 10))
alert("data is integer")
else
alert("data is not an integer")
试试这个:
let number = 5;
if (Number.isInteger(number)) {
//do something
}
好的,得到负号,因为没有描述我的例子,所以更多的例子:):
我使用正则表达式和测试方法:
var isInteger = /^[0-9]\d*$/;
isInteger.test(123); //true
isInteger.test('123'); // true
isInteger.test('sdf'); //false
isInteger.test('123sdf'); //false
// If u want to avoid string value:
typeof testVal !== 'string' && isInteger.test(testValue);