我希望在旧的VB6 IsNumeric()函数的同一概念空间中存在某些东西?
解决方法:
要检查变量(包括字符串)是否为数字,请检查它是否不是数字:
无论变量内容是字符串还是数字,这都有效.
isNaN(num) // returns true if the variable does NOT contain a valid number
例子
isNaN(123) // false
isNaN('123') // false
isNaN('1e10000') // false (This translates to Infinity, which is a number)
isNaN('foo') // true
isNaN('10px') // true
当然,如果需要,你可以否定这一点.例如,要实现您提供的IsNumeric示例:
function isNumeric(num){
return !isNaN(num)
}
要将包含数字的字符串转换为数字:
仅在字符串仅包含数字字符时才有效,否则返回NaN.
+num // returns the numeric value of the string, or NaN
// if the string isn't purely numeric characters
例子
+'12' // 12
+'12.' // 12
+'12..' // Nan
+'.12' // 0.12
+'..12' // Nan
+'foo' // NaN
+'12px' // NaN
将字符串松散地转换为数字
用于将’12px’转换为12,例如:
parseInt(num) // extracts a numeric value from the
// start of the string, or NaN.
例子
parseInt('12') // 12
parseInt('aaa') // NaN
parseInt('12px') // 12
parseInt('foo2') // NaN These last two may be different
parseInt('12a5') // 12 from what you expected to see.
花车
请记住,与num不同,parseInt(顾名思义)会通过砍掉小数点后面的所有内容将浮点数转换为整数(如果你想使用parseInt(),因为这种行为,you’re probably better off using another method instead):
+'12.345' // 12.345
parseInt(12.345) // 12
parseInt('12.345') // 12
空字符串
空字符串可能有点违反直觉. num将空字符串转换为零,并且isNaN()假设相同:
+'' // 0
isNaN('') // false
但是parseInt()不同意:
parseInt('') // NaN