我希望在与旧的VB6 IsNumeric()函数相同的概念空间中有什么东西?
当前回答
在将参数传递给其构造函数时,可以使用Number的结果。
如果参数(字符串)不能转换为数字,它将返回NaN,因此您可以确定提供的字符串是否为有效数字。
注意:当传递空字符串或'\t\t'和'\n\t'作为Number时,将返回0;传递true将返回1,传递false将返回0。
Number('34.00') // 34
Number('-34') // -34
Number('123e5') // 12300000
Number('123e-5') // 0.00123
Number('999999999999') // 999999999999
Number('9999999999999999') // 10000000000000000 (integer accuracy up to 15 digit)
Number('0xFF') // 255
Number('Infinity') // Infinity
Number('34px') // NaN
Number('xyz') // NaN
Number('true') // NaN
Number('false') // NaN
// cavets
Number(' ') // 0
Number('\t\t') // 0
Number('\n\t') // 0
其他回答
省去了寻找“内置”解决方案的麻烦。
没有一个好的答案,而这篇文章中获得极大支持的答案是错误的。
npm安装是数字
在JavaScript中,可靠地检查值是否为数字并不总是那么简单。开发人员通常使用+、-或Number()将字符串值转换为数字(例如,当从用户输入、正则表达式匹配、解析器等返回值时)。但有许多非直觉的边缘情况会产生意想不到的结果:
console.log(+[]); //=> 0
console.log(+''); //=> 0
console.log(+' '); //=> 0
console.log(typeof NaN); //=> 'number'
parseInt(),但要注意,这个函数有点不同,例如,它为parseInt返回100(“100px”)。
检查JS中的数字:
检查是否为数字的最佳方法:是有限的(20)//真的从字符串中读取值。CSS*:parseInt('2.5rem')//2parseFloat('2.5rem')//2.5 对于整数:isInteger(23/0)//错误如果值为NaN:isNaN(20)//错误
测试字符串或数字是否为数字
const isNumeric = stringOrNumber =>
stringOrNumber == 0 || !!+stringOrNumber;
或者如果要将字符串或数字转换为数字
const toNumber = stringOrNumber =>
stringOrNumber == 0 || +stringOrNumber ? +stringOrNumber : NaN;
我在Angular中使用了这个函数
isNumeric(value: string): boolean {
let valueToNumber = Number(value);
var result = typeof valueToNumber == 'number' ;
if(valueToNumber.toString() == 'NaN')
{
result = false;
}
return result;
}
推荐文章
- 文档之间的区别。addEventListener和window。addEventListener?
- 如何检查动态附加的事件监听器是否存在?
- 如何写setTimeout与参数Coffeescript
- 将JavaScript字符串中的多个空格替换为单个空格
- JavaScript: override alert()
- 重置setTimeout
- 如何确保<select>表单字段被禁用时提交?
- jQuery有不聚焦的方法吗?
- 反应钩子-正确的方式清除超时和间隔
- TypeScript枚举对象数组
- 在React.js中正确的img路径
- 在React.js中更新组件onScroll的样式
- onClick ReactJS调用多个函数
- 如何在JavaScript中转义单引号(')?
- Ng-repeat结束事件