为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

SMILET 2021-12-23 15:46:34
当我得到版本示例“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”
查看完整描述

2 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

您可以拆分并填充版本数组,然后将一个添加到最后一项。


function next(version) {

    var items = version.split('.').map(Number);

        

    while (items.length < 4) items.push(0);

    items[3]++;

    

    return items.join('.');

}


console.log(next("1.0.0.0"));

console.log(next("1"));

console.log(next("22"));


查看完整回答
反对 回复 2021-12-23
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

我制作了一个版本,您可以在其中传递要增加的位置。


如果该位置不存在,则创建它,如果没有传递该位置,则为 3


const nextVersion = (ver, pos=3) => {

  let [main,...rest] = ver.split(".")

  rest = Array.isArray(rest) && rest.length > 0 ? rest : Array(pos).fill(0,0,pos);

  if (rest.length<pos) rest.push(0); // make sure it is long enough

  +rest[pos-1]++; // interestingly enough the + was not needed here

  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


查看完整回答
反对 回复 2021-12-23
  • 2 回答
  • 0 关注
  • 173 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号