gpt4 book ai didi

javascript - 整个字符串都是数字,但如果在开头则忽略全零

转载 作者:行者123 更新时间:2023-11-28 17:34:53 26 4
gpt4 key购买 nike

我使用以下内容来确保字符串只是数字:

myStr.match(/^[0-9]*$/g);

但我希望通过忽略开头的任何零来改进它,除非它是唯一的数字,或者如果全是零则返回 0。

我想要这样的东西:

myStr = "0"; //--> match = 0
myStr = "00"; //--> match = 0
myStr = "10"; //--> match = 10
myStr = "05"; //--> match = 5
myStr = "000007"; //--> match = 7

我想这里的第二行会让事情变得更加棘手,因为我也在检查是否只有零。也许这对于单独的正则表达式来说太多了。我发现了很多检查它是否以零开头并跳过它的例子,但我很难找到一些可以捕获数字其余部分并忽略零的东西。

编辑:不幸的是,就 parseInt() 而言,这是一个使用旧版本 ECMAScript 的 After Effects 表达式。像 parseInt("010") 这样的东西返回 8(八进制)。

最佳答案

如果没有lookbehind(很快就会出现JavaScript!),除了正则表达式之外,您还需要捕获组或其他逻辑。

这是捕获组版本:

/^0*(\d+)$/

(非常感谢 ctwheels 指出我之前的 0|[1-9]\d* 可以缩短为 \d+ [因为我们已经消耗了所有前导零,除了足以满足 \d+ 和前导 0*]!)

示例:

var rex = /^0*(\d+)$/;
function test(myStr, expect) {
var match = myStr.match(rex);
var val = match ? match[1] : null;
console.log(myStr, val, val === expect ? "Good" : "ERROR");
}
test("0", "0");
test("00", "0");
test("10", "10");
test("05", "5");
test("000007", "7");

关于javascript - 整个字符串都是数字,但如果在开头则忽略全零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49368311/

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