我希望在与旧的VB6 IsNumeric()函数相同的概念空间中有什么东西?
当前回答
您也可以使用简单的parseInt函数。。。带有if条件例如
if (parseInt(i)){
(i in dic) ? dic[i] += 1 : dic[i] = 1
}
其他回答
我已经测试过了,迈克尔的解决方案是最好的。投票支持上面的答案(在这个页面上搜索“如果你真的想确保有一个字符串”来找到它)。本质上,他的答案是:
function isNumeric(num){
num = "" + num; //coerce num to be a string
return !isNaN(num) && !isNaN(parseFloat(num));
}
它适用于每个测试用例,我在这里记录了这些测试用例:https://jsfiddle.net/wggehvp9/5/
许多其他解决方案在这些边缘情况下失败:“”、null、“”、true和[]。理论上,您可以使用它们,并进行适当的错误处理,例如:
return !isNaN(num);
or
return (+num === +num);
具有特殊处理/\s/,null,“”,true,false,[](和其他?)
我使用的是:
const isNumber = s => !isNaN(+s)
报价:
isNaN(num)//如果变量不包含有效数字,则返回true
如果您需要检查前导/尾随空格,则不完全正确-例如,当需要一定数量的数字时,并且您需要获得例如“1111”而不是“111”或“111”以获得PIN输入。
更好使用:
var num = /^\d+$/.test(num)
你可以按照RegExp的方式:
var num = "987238";
if(num.match(/^-?\d+$/)){
//valid integer (positive or negative)
}else if(num.match(/^\d+\.\d+$/)){
//valid float
}else{
//not valid number
}
我在Angular中使用了这个函数
isNumeric(value: string): boolean {
let valueToNumber = Number(value);
var result = typeof valueToNumber == 'number' ;
if(valueToNumber.toString() == 'NaN')
{
result = false;
}
return result;
}
推荐文章
- 在React Native中使用Fetch授权头
- 为什么我的球(物体)没有缩小/消失?
- 如何使用jQuery检测页面的滚动位置
- if(key in object)或者if(object. hasownproperty (key)
- 一元加/数字(x)和parseFloat(x)之间的区别是什么?
- angularjs中的compile函数和link函数有什么区别
- 删除绑定中添加的事件监听器
- 很好的初学者教程socket.io?
- HtmlSpecialChars在JavaScript中等价于什么?
- React: 'Redirect'没有从' React -router-dom'中导出
- 如何在React中使用钩子强制组件重新渲染?
- 我如何使用Jest模拟JavaScript的“窗口”对象?
- 我如何等待一个承诺完成之前返回一个函数的变量?
- 在JavaScript中根据键值查找和删除数组中的对象
- 使嵌套JavaScript对象平放/不平放的最快方法