javascript判断值是否为数字的方法
这篇“javascript判断值是否为数字的方法”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“javascript判断值是否为数字的方法”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们一起来看看具体内容吧。
JavaScript是什么
JavaScript是一种直译式的脚本语言,其解释器被称为JavaScript引擎,是浏览器的一部分,JavaScript是被广泛用于客户端的脚本语言,最早是在HTML网页上使用,用来给HTML网页增加动态功能。
javascript判断值是否是数字:1、使用isNaN()函数判断值是否为数字;2、使用正则表达式判断值是否为数字;3、使用parseFloat()函数判断值是否为数字。
javascript判断值是否是数字
使用isNaN()函数
isNaN()的缺点就在于 null、空格以及空串会被按照0来处理
NaN: Not a Number
function isRealNum(val){ // isNaN()函数 把空串 空格 以及NUll 按照0来处理 所以先去除, if(val === "" || val ==null){ return false; } if(!isNaN(val)){ //对于空数组和只有一个数值成员的数组或全是数字组成的字符串,isNaN返回false,例如:'123'、[]、[2]、['123'],isNaN返回false, //所以如果不需要val包含这些特殊情况,则这个判断改写为if(!isNaN(val) && typeof val === 'number' ) return true; } else{ return false; } }
isNaN()函数来判断一个值是数字的最正确的方法就是:
// true:数值型的,false:非数值型 function myIsNaN(value) { return typeof value === 'number' && !isNaN(value); }
isNaN()详解
参考链接:https://wangdoc.com/javascript/types/number.html#isnan
对于空数组和只有一个数值成员的数组,isNaN
返回false
。
isNaN([]) // falseisNaN([123]) // falseisNaN(['123']) // false
上面代码之所以返回false
,原因是这些数组能被Number
函数转成数值,请参见《数据类型转换》一章。
因此,使用isNaN
之前,最好判断一下数据类型。
function myIsNaN(value) { return typeof value === 'number' && !isNaN(value);}
2.使用正则表达式
(1)、校验只要是数字(包含正负整数,0以及正负浮点数)就返回true
function isNumber(val){ var regPos = /^\d+(\.\d+)?$/; //非负浮点数 var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //负浮点数 if(regPos.test(val) && regNeg.test(val)){ return true; }else{ return false; }}
(2)、 校验正负正数就返回true
function isIntNum(val){ var regPos = / ^\d+$/; // 非负整数 var regNeg = /^\-[1-9][0-9]*$/; // 负整数 if(regPos.test(val) && regNeg.test(val)){ return true; }else{ return false; } }
3.使用parseFloat()函数
(parseFloat(val).toString() == "NaN"
感谢你的阅读,希望你对“javascript判断值是否为数字的方法”这一关键问题有了一定的理解,具体使用情况还需要大家自己动手实验使用过才能领会,快去试试吧,如果想阅读更多相关知识点的文章,欢迎关注编程网行业资讯频道!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341