【发布时间】:2009-05-15 08:34:18
【问题描述】:
我有一个这种格式的字符串
1.0.x.0
我必须在 javascript 中编写一个自动递增x 的正则表达式-- 怎么做?
请注意,给出的字符串将始终采用该格式——无需测试格式有效性...
【问题讨论】:
标签: javascript regex
我有一个这种格式的字符串
1.0.x.0
我必须在 javascript 中编写一个自动递增x 的正则表达式-- 怎么做?
请注意,给出的字符串将始终采用该格式——无需测试格式有效性...
【问题讨论】:
标签: javascript regex
试试这个:
"1.0.123.0".replace(/(\d+\.\d+\.)(\d+)(\.\d+)/, function($0, $1, $2, $3) {
return $1 + (parseInt($2) + 1) + $3;
});
【讨论】:
为什么必须是正则表达式?符号是一致的,只是略有不同;不需要正则表达式。
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"
【讨论】: