JavaScript判断数字正负数
分类:实例代码
本章节通过代码实例介绍一下如何判断一个变量是正数还是负数。
貌似非常简单的一个需求,其实深究起来还是有点麻烦的。
有些朋友可能感觉实在是太简单了,比如下面的代码:
var num = 5; if (num > 0) { console.log("正数"); }
貌似很简单其实漏洞很多的,如果num等于true,同样也会打印"正数"。
代码如下:
var num = true; if (num > 0) { console.log("正数"); }
下面展开来介绍一下如何判断变量的正负数:
一.判断数字的正负:
var num = 5; var numStr = "5"; console.log(typeof num == "number" && !isNaN(num) && num > 0) console.log(typeof numStr == "number" && !isNaN(numStr) && numStr > 0)
上面的代码可以验证一个数字的正负,数字字符串不行。
二.数字字符串的正负:
当然字符串无所谓正负,我们无需钻这个牛角尖。
var one = "5"; var two = "8.5"; var three = "8.578"; console.log(typeof one == 'string' && one.match(/^\d+((\.\d+){0,})?$/) && parseFloat(one) > 0); console.log(typeof two == 'string' && two.match(/^\d+((\.\d+){0,})?$/) && parseFloat(two) > 0); console.log(typeof three == 'string' && three.match(/^\d+((\.\d+){0,})?$/) && parseFloat(three) > 0);
上面的代码可以验证一个数字字符串转换为数字后的正负。
三.以上两者的综合:
很多时候可能无论是真正的数字还是字符串可能都要考虑在内,下面就来封装一下。
代码实例如下:
var one = 5; var two = "8.5"; var three = "8.578"; function check(arg) { if (typeof arg == "string") { return !!(arg.match(/^\d+((\.\d+){0,})?$/) && parseFloat(arg) > 0) } else if (typeof arg == "number") { return !isNaN(arg) && arg> 0; } else { return "参数不正确"; } } console.log(check("5a")); console.log(check(one)); console.log(check(two)); console.log(check(three));
上面的代码实现了我们的要求,更多内容可以参阅相关阅读。
相关阅读:
(1).match()参阅正则表达式match()函数一章节
(2).parseFloat()参阅javascript parseFloat()一章节。
(3).typeof参阅javascript typeof运算符一章节。
(4).isNaN()参阅javascript isNaN()一章节。
JavaScript判断数字正负数,这样的场景在实际项目中还是用的比较多的,关于JavaScript判断数字正负数就介绍到这了。
JavaScript判断数字正负数属于前端实例代码,有关更多实例代码大家可以查看。