在JavaScript中,判断一个值是否是数字可以通过多种方法实现,以下是几种常见的方法:
- 使用
isNaN()
函数:
function isRealNum(val) {
if (val == null) return false;
return !isNaN(val) && typeof val === 'number';
}
- 使用正则表达式:
function isNumber(val) {
var regPos = /^\d+(\.\d+)?$/; // 非负浮点数
var regNeg = /^-?\d+(\.\d+)?$/; // 负浮点数
return regPos.test(val) || regNeg.test(val);
}
- 利用
parseFloat()
的返回值:
function isNotANumber(inputData) {
return isNaN(parseFloat(inputData)) && inputData.toString() !== 'NaN';
}
- 使用
Number()
函数和isNaN()
函数结合:
function isNumber(val) {
return !isNaN(Number(val, 10));
}
- 使用
Number.isNaN()
函数(ECMAScript 2016 引入):
function isNumber(val) {
return Number.isNaN(val);
}
- 使用
Number.isFinite()
函数(ECMAScript 2016 引入):
function isNumber(val) {
return Number.isFinite(val);
}
以上方法各有优缺点,选择合适的方法取决于具体的应用场景和需求。需要注意的是,isNaN()
函数会将 null
、空格和空字符串视为 0
,这可能不是预期的行为,因此在某些情况下需要结合其他方法进行更精确的判断。