我一直在寻找验证数据输入以检查它是整数还是字符串。我环顾四周,看到了一些建议和typeof
建议,但似乎没有任何效果。
var nam = prompt("Enter name:")
person.push(nam);
var mk1 = prompt("Enter mark 1:");
var mk1 = parseInt(mk1);
mark1.push(mk1);
答案 0 :(得分:0)
使用===运算符,如下所示
if (mk1 === parseInt(mk1 , 10))
alert("mk1 is integer")
else
alert("mk1 is not an integer. May be String")
如果你不知道参数是一个数字 -
function isInt(n){
return Number(n)===n && n%1===0;
}
答案 1 :(得分:0)
如果要检查输入字符串是否不是数字,请尝试:
if (isNaN(parseInt(name, 10)) {
//name is String
} else {
//name is Number
}
答案 2 :(得分:0)
尝试这种方式来查找输入类型;
if(!isNaN(parseInt(mk1)))
// for integer
else if(!isNaN(parseFloat(mk1)))
//for float
else
// String
答案 3 :(得分:0)
当您prompt()
用户提供数据时,您always get a string。如果你想检查它是否实际只包含一个数字,你可以试试这个:
var value = prompt('...'),
num = parseInt(value, 10);
if (num == value) {
// ... it is an integer, use `num`
} else {
// ... it's not an integer (or not *just* an integer), use `value`
}
(或使用parseFloat(value)
表示实数)。
答案 4 :(得分:0)
很难说你到底想要做什么。你似乎两次声明var mk1
,看起来有点奇怪。此外,即使parseInt失败(然后返回NaN [Not a Number]),您也将它添加到mark1,这可能不是您想要的。看看这个:
var nam = prompt("Enter name:")
person.push(nam);
var mk1 = prompt("Enter mark 1:");
mk1 = parseInt(mk1);
if (Number.isNaN(mk1) === false) {
mark1.push(mk1);
} else {
alert("mark 1 is not a number");
}
答案 5 :(得分:0)
使用此功能: isNaN(parseInt函数(MK1))
它将返回" true"如果不是数字," false"如果是一个数字