使用多种版本格式时的案例

当我得到版本示例“1.0.0.0”格式的数字时。如果我需要增加到数字的下一个版本,这将导致“1.0.0.1”


使用下面的正则表达式代码将得到完美的结果为“1.0.0.1”——版本增量


let version = "1.0.0.0";

let nextVersion = version.replace(/.$/, parseInt(version[version.length - 1], 10) + 1);


console.log(nextVersion)


但是,如果我得到的数字不是版本格式的“1”,但我希望与上述相同的结果是“1.0.0.1”。在这种情况下我将如何处理数字?如果一个数字是“22”,我希望它是“22.0.0.1”


SMILET
浏览 174回答 2
2回答

侃侃无极

您可以拆分并填充版本数组,然后将一个添加到最后一项。function next(version) {&nbsp; &nbsp; var items = version.split('.').map(Number);&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; while (items.length < 4) items.push(0);&nbsp; &nbsp; items[3]++;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; return items.join('.');}console.log(next("1.0.0.0"));console.log(next("1"));console.log(next("22"));

qq_花开花谢_0

我制作了一个版本,您可以在其中传递要增加的位置。如果该位置不存在,则创建它,如果没有传递该位置,则为 3const nextVersion = (ver, pos=3) => {&nbsp; let [main,...rest] = ver.split(".")&nbsp; rest = Array.isArray(rest) && rest.length > 0 ? rest : Array(pos).fill(0,0,pos);&nbsp; if (rest.length<pos) rest.push(0); // make sure it is long enough&nbsp; +rest[pos-1]++; // interestingly enough the + was not needed here&nbsp; return `${main}.${rest.join(".")}`; // or use rest.unshift(main)}console.log(nextVersion("22",3))console.log(nextVersion("1.0.0.1",3))console.log(nextVersion("22",1))console.log(nextVersion("22.1",1))console.log(nextVersion("22.1",2))console.log(nextVersion("1.0.0.1",1))console.log(nextVersion("22")); // no parameters
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript