栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

验证JavaScript中的十进制数字

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

验证JavaScript中的十进制数字

@Joel的答案非常接近,但在以下情况下将失败:

// Whitespace strings:IsNumeric(' ')    == true;IsNumeric('tt') == true;IsNumeric('nr') == true;// Number literals:IsNumeric(-1)  == false;IsNumeric(0)   == false;IsNumeric(1.1) == false;IsNumeric(8e5) == false;

前段时间,我必须实现一个

IsNumeric
函数,以查明变量是否包含数值, 无论其类型如何
,它都可能是
String
包含数值(我还必须考虑指数符号等),
Number
对象,几乎任何东西都可以传递给该函数,我不能做任何类型假设,要注意类型强制(例如,
+true== 1;
true
不应视为
"numeric"
)。

分享通过的测试:

function isNumeric(n) {    return !isNaN(parseFloat(n)) && isFinite(n);}

由于强制转换为数字,因此PS的行为令人困惑。在ES6中,Number.isNaN和Number.isFinite将解决这些问题。使用它们时请记住这一点。


这是jQuery现在的方式(2.2稳定):

isNumeric: function(obj) {    var realStringObj = obj && obj.toString();    return !jQuery.isArray(obj) && (realStringObj - parseFloat(realStringObj) + 1) >= 0;}

更新 : Angular4.3:

export function isNumeric(value: any): boolean {    return !isNaN(value - parseFloat(value));}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/378794.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号