JavaScript:如何将整数倒数第二位数字递增1(问题求助)
解决整数倒数第二位数字递增1的问题
嘿,我明白你遇到的问题了!你现在的代码之所以会修改最后一位数字,是因为正则表达式的匹配逻辑不对——[0-9]+(?!.*[0-9])其实是匹配整个数字字符串的最后一段连续数字(在这里就是整个数字),然后给它整体加1,自然就会改变最后一位啦。
要实现只给倒数第二位数字加1的需求,我们需要调整正则,精准定位到倒数第二位的数字,同时保留最后一位不变。这里可以用捕获组来分别匹配倒数第二位和最后一位数字,然后对倒数第二位进行递增操作,再拼接回最后一位。
修改后的代码如下:
function increment_second_last(v) { return v.replace(/(\d)(\d)$/, function(match, secondLast, last) { return (parseInt(secondLast, 10) + 1) + last; }); }
测试一下:
调用 increment_second_last("26925131") 会返回 "26925141",完美符合你的预期!
如果遇到倒数第二位是9的情况,比如输入 "199",这个函数会返回 "299"——这完全符合“倒数第二位加1”的需求,如果你需要处理进位(比如把199变成209),可以随时说,我再帮你调整逻辑~
内容的提问来源于stack exchange,提问作者user9229458
相关产品推荐
相关产品推荐

