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判断数字正负数属于前端实例代码,有关更多实例代码大家可以查看

回复

我来回复
  • 暂无回复内容