验证提示输入是否为 JS 中的数字的最佳方法是什么?
What is the best way to validate if a prompt entry is a number in JS?
JS把所有的提示输入都变成了字符串。我想测试它是否是一个实际数字,如果是,则将类型转换为数字。最好的方法是什么?如果我使用 Number(target)
,它也会将任何字符串转换为 number
类型。
var res = prompt('How long'); //input: "ABC"
typeof Number(res)
>> "number"
在这种情况下,您可以借助正则表达式
let isNum = /^\d+$/.test(res);
isNum
中的结果将根据您的输入为真或为假。如果结果为真,那么您可以将其转换为数字
if (isNum)
let num = parseInt(res)
// let res = +(prompt('How long') // + convert to number
if(res = +(prompt('How long'))){
console.log('Its number : ', res);
}else{
console.log("Its not a number");
}
实现这一目标的方法有多种,但最佳做法之一是:
首先,获取输入:
let result = prompt('How long');
将输入转换为数字:
let resultNumber = Number(result);
现在,是时候验证我们的 resultNumber
:
if(!Number.isNaN(resultNumber)) {
// It's a actual number
} else {
// It's not a number
}
注1:将字符串转成数字并不总是产生数字,NaN
是那些转换的结果,我们举个例子
Number('false') // --> NaN
注2:如果数字是实际数字,则将其转换为数字类型,但在NaN
的情况下,Number.isNaN()
将检查一下。
JS把所有的提示输入都变成了字符串。我想测试它是否是一个实际数字,如果是,则将类型转换为数字。最好的方法是什么?如果我使用 Number(target)
,它也会将任何字符串转换为 number
类型。
var res = prompt('How long'); //input: "ABC"
typeof Number(res)
>> "number"
在这种情况下,您可以借助正则表达式
let isNum = /^\d+$/.test(res);
isNum
中的结果将根据您的输入为真或为假。如果结果为真,那么您可以将其转换为数字
if (isNum)
let num = parseInt(res)
// let res = +(prompt('How long') // + convert to number
if(res = +(prompt('How long'))){
console.log('Its number : ', res);
}else{
console.log("Its not a number");
}
实现这一目标的方法有多种,但最佳做法之一是:
首先,获取输入:
let result = prompt('How long');
将输入转换为数字:
let resultNumber = Number(result);
现在,是时候验证我们的 resultNumber
:
if(!Number.isNaN(resultNumber)) {
// It's a actual number
} else {
// It's not a number
}
注1:将字符串转成数字并不总是产生数字,NaN
是那些转换的结果,我们举个例子
Number('false') // --> NaN
注2:如果数字是实际数字,则将其转换为数字类型,但在NaN
的情况下,Number.isNaN()
将检查一下。