检查变量是否为 Javascript 中的整数
Checking if variable is an Integer in Javascript
我开始在学校学习 JavaScript,其中一项作业要求我检查用户的输入是否为整数。
此代码在 CHROME 上对我不起作用。
var person = prompt("Please enter your name", "Enter Name");
alert("Hello " + person);
var age = prompt("Please enter your age", "Enter age");
if (age == parseInt(age, 10))
alert("data is integer")
else
alert("data is not an integer")
无论我在提示框中输入字符串还是整数,它总是显示 "data is not an integer" 消息。
你可以试试这个来检查它是否是一个整数:
function isInteger(x) {
return x % 1 === 0;
}
提示总是 return 一个字符串,所以在你的情况下:
var integerAge = parseInt(age);
if(!isNaN(integerAge) && age === '' + integerAge)
alert("data is integer")
else
alert("data is not an integer")
在年龄的情况下,您还可能会在下一个验证步骤中检查它是否为具有一些 integerAge >= 0
或自定义最小值和最大值的正整数。
提示总是 return 字符串,但由于 JS 是松散类型的语言,这些字符串将在需要时自动转换为数字(整数在 JS 中称为数字),这就是为什么您的示例 工作正常.
为了更好地检查,您可以使用!isNaN
。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN
alert(!isNaN('10'));
alert(!isNaN('abc'));
alert(!isNaN(10));
对于疯狂的反对者,这是 OP 代码的优化版本:
var age = parseInt(prompt("Please enter your age", "Enter age"), 10);
alert(isNaN(age) ? 'Not a number' : age);
我开始在学校学习 JavaScript,其中一项作业要求我检查用户的输入是否为整数。
此代码在 CHROME 上对我不起作用。
var person = prompt("Please enter your name", "Enter Name");
alert("Hello " + person);
var age = prompt("Please enter your age", "Enter age");
if (age == parseInt(age, 10))
alert("data is integer")
else
alert("data is not an integer")
无论我在提示框中输入字符串还是整数,它总是显示 "data is not an integer" 消息。
你可以试试这个来检查它是否是一个整数:
function isInteger(x) {
return x % 1 === 0;
}
提示总是 return 一个字符串,所以在你的情况下:
var integerAge = parseInt(age);
if(!isNaN(integerAge) && age === '' + integerAge)
alert("data is integer")
else
alert("data is not an integer")
在年龄的情况下,您还可能会在下一个验证步骤中检查它是否为具有一些 integerAge >= 0
或自定义最小值和最大值的正整数。
提示总是 return 字符串,但由于 JS 是松散类型的语言,这些字符串将在需要时自动转换为数字(整数在 JS 中称为数字),这就是为什么您的示例 工作正常.
为了更好地检查,您可以使用!isNaN
。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN
alert(!isNaN('10'));
alert(!isNaN('abc'));
alert(!isNaN(10));
对于疯狂的反对者,这是 OP 代码的优化版本:
var age = parseInt(prompt("Please enter your age", "Enter age"), 10);
alert(isNaN(age) ? 'Not a number' : age);