gpt4 book ai didi

javascript - 如何检查字符串是否为自然数?

转载 作者:可可西里 更新时间:2023-11-01 02:13:28 30 4
gpt4 key购买 nike

在 javascript 中,如何检查字符串是否为自然数(包括零)?

谢谢

例子:

'0' // ok
'1' // ok
'-1' // not ok
'-1.1' // not ok
'1.1' // not ok
'abc' // not ok

最佳答案

这是我的解决方案:

function isNaturalNumber(n) {
n = n.toString(); // force the value incase it is not
var n1 = Math.abs(n),
n2 = parseInt(n, 10);
return !isNaN(n1) && n2 === n1 && n1.toString() === n;
}

这是演示:

var tests = [
'0',
'1',
'-1',
'-1.1',
'1.1',
'12abc123',
'+42',
'0xFF',
'5e3'
];

function isNaturalNumber(n) {
n = n.toString(); // force the value incase it is not
var n1 = Math.abs(n),
n2 = parseInt(n, 10);
return !isNaN(n1) && n2 === n1 && n1.toString() === n;
}

console.log(tests.map(isNaturalNumber));

这里是输出:

[true, true, false, false, false, false, false, false, false]

演示: http://jsfiddle.net/rlemon/zN6j3/1

注意:这不是真正的自然数,但我知道 OP 不需要真正的自然数。这是实自然数的解决方案:

function nat(n) {
return n >= 0 && Math.floor(n) === +n;
}

http://jsfiddle.net/KJcKJ/

@BenjaminGruenbaum 提供

关于javascript - 如何检查字符串是否为自然数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16799469/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com