Javascript 在字符串末尾递增一个数字

Javascript 在字符串末尾递增一个数字,javascript,string,Javascript,String,我想要一些帮助来编写JavaScript函数,该函数将检测字符串末尾的连字符和数字: 即 如果我的字符串末尾有一个连字符,那么在连字符后面取数字,并将其递增1 即 你可以 x = x.replace(/-\d+$/, function(n){ return '-'+(1-n) }); 仅当数字位于连字符之后且位于字符串末尾时,此操作才会增加该数字。您可以沿着以下几行操作: increaseNumberAtEndOfString = function (input) { try {

我想要一些帮助来编写JavaScript函数,该函数将检测字符串末尾的连字符和数字:

如果我的字符串末尾有一个连字符,那么在连字符后面取数字,并将其递增1

你可以

x = x.replace(/-\d+$/, function(n){ return '-'+(1-n) });

仅当数字位于连字符之后且位于字符串末尾时,此操作才会增加该数字。

您可以沿着以下几行操作:

increaseNumberAtEndOfString = function (input) {
    try {
        var ar = input.split("-");
        if (ar.length > 1) {
            var myNumber = Number(ar[ar.length - 1]);
            myNumber++;
            ar[ar.length - 1] = myNumber;
        }
        return ar.join("-");
    } catch (e) {
        throw new Error("Invalid string!");
    }
}
试试这个

var reg = /-\d+$/
if(reg.test(x)){
    x = x.replace(/(\d+)$/,function(a){return +a+1})
}

这是如何“在我的字符串末尾检测连字符和数字的”?哇…一行代码。那是某种火箭科学。谢谢@JasonKelly是否清楚它是如何工作的,或者您是否需要对特定部分进行解释?只需一个正则表达式就可以更有效地完成,请参见我的答案。@dystroy,是的,我看到了,这是关于“如何检测”的评论中一个问题的答案
increaseNumberAtEndOfString = function (input) {
    try {
        var ar = input.split("-");
        if (ar.length > 1) {
            var myNumber = Number(ar[ar.length - 1]);
            myNumber++;
            ar[ar.length - 1] = myNumber;
        }
        return ar.join("-");
    } catch (e) {
        throw new Error("Invalid string!");
    }
}
var reg = /-\d+$/
if(reg.test(x)){
    x = x.replace(/(\d+)$/,function(a){return +a+1})
}