用于检测和更新字符串的正则表达式(用于在AssemblyInfo.cs中更新文件版本)

时间:2009-05-15 08:34:18

标签: javascript regex

我有一个这种格式的字符串

1.0.x.0

我必须在javascript中编写一个自动递增x的正则表达式 - 如何做?

请注意,给定的字符串将始终采用该格式 - 无需测试格式有效性......

2 个答案:

答案 0 :(得分:8)

试试这个:

"1.0.123.0".replace(/(\d+\.\d+\.)(\d+)(\.\d+)/, function($0, $1, $2, $3) {
    return $1 + (parseInt($2) + 1) + $3;
});

答案 1 :(得分:2)

为什么它必须是正则表达式?符号是一致的,只是略有不同;不需要正则表达式。

function incrementStrN(str) {
    var split = str.split('.');
    split[2]++;
    return split.join('.');
}
incrementStrN("1.0.123.0"); // Returns "1.0.124.0"

我知道它看起来不是很漂亮,但它比使用正则表达式更快;加上它更容易定制;例如,您可以通过这种方式实现它,以便可以更改要增加的部分:(参见 @param sec

function incrementStrN(str, sec) {
     var split = str.split('.');
     split[sec-1]++;
     return split.join('.');
}

incrementStrN("1.0.123.0", 1); // Returns "2.0.123.0"
incrementStrN("1.0.123.0", 3); // Returns "1.0.124.0"