javascript 判断为负数_JavaScript判断数字正负数

本文详细介绍了在JavaScript中如何正确判断一个变量是否为正数或负数,包括处理数字和数字字符串的情况。通过示例代码,演示了在不同场景下避免常见漏洞的判断方法,并提供了一个综合函数来检查变量的正负值,确保输入既可以是数字也可以是数字字符串。同时,文章还提到了`typeof`、`isNaN()`、`parseFloat()`和正则表达式在判断过程中的作用。

本章节通过代码实例介绍一下如何判断一个变量是正数还是负数。

貌似非常简单的一个需求,其实深究起来还是有点麻烦的。

有些朋友可能感觉实在是太简单了,比如下面的代码:[JavaScript] 纯文本查看 复制代码运行代码var num = 5;

if (num > 0) {

console.log("正数");

}

貌似很简单其实漏洞很多的,如果num等于true,同样也会打印"正数"。

代码如下:[JavaScript] 纯文本查看 复制代码运行代码var num = true;

if (num > 0) {

console.log("正数");

}

下面展开来介绍一下如何判断变量的正负数:

一.判断数字的正负:[JavaScript] 纯文本查看 复制代码运行代码var num = 5;

var numStr = "5";

console.log(typeof num == "number" && !isNaN(num) && num > 0)

console.log(typeof numStr == "number" && !isNaN(numStr) && numStr > 0)

上面的代码可以验证一个数字的正负,数字字符串不行。

二.数字字符串的正负:

当然字符串无所谓正负,我们无需钻这个牛角尖。[JavaScript] 纯文本查看 复制代码运行代码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);

上面的代码可以验证一个数字字符串转换为数字后的正负。

三.以上两者的综合:

很多时候可能无论是真正的数字还是字符串可能都要考虑在内,下面就来封装一下。

代码实例如下:[JavaScript] 纯文本查看 复制代码运行代码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运算符一章节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值