Javascript 如何在js中检查输入是否为数字

Javascript 如何在js中检查输入是否为数字,javascript,Javascript,这是我一直在编写的代码 var storeUsersInfo = []; var amountOfUsers = prompt("How many users do you want?"); amountOfUsers = parseInt(amountOfUsers); function returnUserInput() { var askFirstName = prompt("What is your first name?"); var askLastName = pro

这是我一直在编写的代码

var storeUsersInfo = [];
var amountOfUsers = prompt("How many users do you want?");
amountOfUsers = parseInt(amountOfUsers);
function returnUserInput() {
    var askFirstName = prompt("What is your first name?");
    var askLastName = prompt("What is your last name" + " " +       titleCase(askFirstName) + "?");
    var askAge = prompt("How old are you" + " " + titleCase(askFirstName) +  " " + titleCase(askLastName) + "?");

        if(askAge != int) {
            alert("Not a valid input")

        };

    return {
        firstName: titleCase(askFirstName),
        lastName: titleCase(askLastName),
        age: askAge
    };
};
function titleCase(string) {
    return string.charAt(0).toUpperCase() + string.slice(1); 
};

for(var i = 0; i < amountOfUsers; i++) {
    storeUsersInfo[i] = returnUserInput();
}
console.log(storeUsersInfo);
var-storeUsersInfo=[];
var amountOfUsers=prompt(“您想要多少用户?”);
amountOfUsers=parseInt(amountOfUsers);
函数returnUserInput(){
var askFirstName=prompt(“您的名字是什么?”);
var askLastName=prompt(“您的姓是什么”+“”+titleCase(askFirstName)+“?”;
var askAge=prompt(“您多大岁数”+“”+titleCase(askFirstName)+”+“”+titleCase(askLastName)+“?”;
如果(askAge!=int){
警报(“非有效输入”)
};
返回{
名字:滴定酶(askFirstName),
姓氏:titleCase(askLastName),
年龄:askAge
};
};
函数标题酶(字符串){
返回string.charAt(0.toUpperCase()+string.slice(1);
};
对于(var i=0;i
我想知道如何检查askAge的输入,看它是否等于一个数字

我尝试了一些代码,正如你在第9-12行看到的,但我无法理解。我知道这和typeof有关


想法?

将其乘以1,如果它返回NaN且与原始输入不相同,则它不是一个数字

        var askAge = prompt("How old are you" + " " + titleCase(askFirstName) +  " " + titleCase(askLastName) + "?");
        var askedAge=parseInt(askAge)*1;
          if(askedAge != askAge) {
              alert("Not a valid input");
            }

将它乘以1,如果它返回NaN并且与原始输入不相同,则它不是一个数字

        var askAge = prompt("How old are you" + " " + titleCase(askFirstName) +  " " + titleCase(askLastName) + "?");
        var askedAge=parseInt(askAge)*1;
          if(askedAge != askAge) {
              alert("Not a valid input");
            }

我想你可以用这个密码

function isNumeric(x) {
  return !isNaN(parseFloat(x)) && isFinite(x);
}

我想你可以用这个密码

function isNumeric(x) {
  return !isNaN(parseFloat(x)) && isFinite(x);
}
你可以用

Number.isInteger(askAge)
参考: 您可以使用

Number.isInteger(askAge)
参考:

试试这个

试试这个


这可以使用和的组合来解决。这两个项目都已在中国标准化

以下表达式将检查年龄是否有效:

Number.isInteger(Number.parseInt(askAge));
注意,您必须首先将用户输入解析为整数;这可能会导致一个有效的整数,也可能导致
NaN


如果它是整数,则
Number.isInteger
将使表达式
为true
;否则,解析后的数字为
NaN
,表达式将变为
false

这可以使用和的组合来解决。这两个项目都已在中国标准化

以下表达式将检查年龄是否有效:

Number.isInteger(Number.parseInt(askAge));
注意,您必须首先将用户输入解析为整数;这可能会导致一个有效的整数,也可能导致
NaN


如果它是整数,则
Number.isInteger
将使表达式
为true
;否则,解析的数字为
NaN
,表达式将变为
false

神秘的答案:

var askAge = prompt("How old are you" + " " + titleCase(askFirstName) +  " " + titleCase(askLastName) + "?");
if(!Number.isInteger(Number.parseInt(askAge))) {
    alert("Not a valid input")
};
更多信息:

var askAge = prompt("How old are you" + " " + titleCase(askFirstName) +  " " + titleCase(askLastName) + "?");
if(!Number.isInteger(Number.parseInt(askAge))) {
    alert("Not a valid input")
};
您的假设部分正确,您必须检查数字的类型,以确保它是一个数字,也是一个整数。如何做到这一点有几个选择。这是一个应该有效的方法

您必须确定是否要使用
Number()
Number.parseInt()
,因为该确定将在此处对接受的值产生差异

鉴于此,我选择在这个答案中使用
parseInt
。我还将其构造为不接受0作为用户数的值

首先,我们在
Number
中使用或创建
isInteger
parseInt

Number.isInteger = Number.isInteger || function(value) {
  return typeof value === "number" && isFinite(value) && Math.floor(value) === value;
};
Number.parseInt = Number.parseInt || parseInt;
声明我们的其他函数:(注释)

使用以下功能:

var storeUsersInfo = [];
var amountOfUsers = 0;
var enteredCount = 0;
do {
  amountOfUsers = prompt("How many users do you want?");
  enteredCount = Number.parseInt(amountOfUsers, 10);// parse it
} while (!(Number.isInteger(Number.parseInt(amountOfUsers, 10))) && !enteredCount > 0)

amountOfUsers = enteredCount;

for (var i = 0; i < amountOfUsers; i++) {
  storeUsersInfo[i] = returnUserInput();
}
console.log(storeUsersInfo);// console.dir might also work (better?)
var-storeUsersInfo=[];
var-amountfuser=0;
var enteredCount=0;
做{
amountOfUsers=prompt(“您想要多少用户?”);
enteredCount=Number.parseInt(amountOfUsers,10);//解析它
}而(!(Number.isInteger(Number.parseInt(amountfuser,10))&!enteredCount>0)
AmountFuser=输入的计数;
对于(var i=0;i
神秘的答案:

var askAge = prompt("How old are you" + " " + titleCase(askFirstName) +  " " + titleCase(askLastName) + "?");
if(!Number.isInteger(Number.parseInt(askAge))) {
    alert("Not a valid input")
};
更多信息:

var askAge = prompt("How old are you" + " " + titleCase(askFirstName) +  " " + titleCase(askLastName) + "?");
if(!Number.isInteger(Number.parseInt(askAge))) {
    alert("Not a valid input")
};
您的假设部分正确,您必须检查数字的类型,以确保它是一个数字,也是一个整数。如何做到这一点有几个选择。这是一个应该有效的方法

您必须确定是否要使用
Number()
Number.parseInt()
,因为该确定将在此处对接受的值产生差异

鉴于此,我选择在这个答案中使用
parseInt
。我还将其构造为不接受0作为用户数的值

首先,我们在
Number
中使用或创建
isInteger
parseInt

Number.isInteger = Number.isInteger || function(value) {
  return typeof value === "number" && isFinite(value) && Math.floor(value) === value;
};
Number.parseInt = Number.parseInt || parseInt;
声明我们的其他函数:(注释)

使用以下功能:

var storeUsersInfo = [];
var amountOfUsers = 0;
var enteredCount = 0;
do {
  amountOfUsers = prompt("How many users do you want?");
  enteredCount = Number.parseInt(amountOfUsers, 10);// parse it
} while (!(Number.isInteger(Number.parseInt(amountOfUsers, 10))) && !enteredCount > 0)

amountOfUsers = enteredCount;

for (var i = 0; i < amountOfUsers; i++) {
  storeUsersInfo[i] = returnUserInput();
}
console.log(storeUsersInfo);// console.dir might also work (better?)
var-storeUsersInfo=[];
var-amountfuser=0;
var enteredCount=0;
做{
amountOfUsers=prompt(“您想要多少用户?”);
enteredCount=Number.parseInt(amountOfUsers,10);//解析它
}而(!(Number.isInteger(Number.parseInt(amountfuser,10))&!enteredCount>0)
AmountFuser=输入的计数;
对于(var i=0;i
如果用户以“空字符串”或“输入验证”的形式提供输入,该怎么办无论哪种方式-结果都是一样的-它不是一个数字,不应该被允许什么都不做。试试。。。。if(parseInt(askAge)…您还应该将您的返回放到else语句中-否则它将返回详细信息,而不考虑alert@user2181397-阅读它-仍然说它是输入验证的角色,用于分类可接受的输入,如果用户以空字符串“”或NaNcan形式提供输入,我可以说“输入验证”?-无论哪种方式-结果都是一样的-它不是一个数字,不应该被允许不做任何事情。尝试…如果(parseInt(askAge)…你也应该将你的返回放在else语句中-否则它将返回细节,而不管结果如何alert@user2