我一直在寻找验证数据输入以检查它是整数还是字符串。我环顾四周,看到了一些建议和typeof
建议,但似乎没有任何效果。
var nam = prompt("Enter name:")
person.push(nam);
var mk1 = prompt("Enter mark 1:");
var mk1 = parseInt(mk1);
mark1.push(mk1);
我一直在寻找验证数据输入以检查它是整数还是字符串。我环顾四周,看到了一些建议和typeof
建议,但似乎没有任何效果。
var nam = prompt("Enter name:")
person.push(nam);
var mk1 = prompt("Enter mark 1:");
var mk1 = parseInt(mk1);
mark1.push(mk1);
使用 === 运算符如下
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;
}
如果要检查输入字符串是否不是数字,请尝试以下操作:
if (isNaN(parseInt(name, 10)) {
//name is String
} else {
//name is Number
}
尝试这种方式来查找输入类型;
if(!isNaN(parseInt(mk1)))
// for integer
else if(!isNaN(parseFloat(mk1)))
//for float
else
// String
当您prompt()
获取数据的用户时,您总是会得到一个字符串。如果你想检查它是否真的只包含一个数字,你可以试试这个:
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)
用于实数)。
很难说你真的想做什么。你好像声明var mk1
了两次,看起来有点奇怪。此外,即使 parseInt 失败(然后返回 NaN [非数字]),您也可以将其添加到 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");
}
使用这个函数:isNaN(parseInt(mk1))
如果不是数字,它将返回“true”,如果是数字,它将返回“false”