首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数将字符串更改为完全不同的值。

函数将字符串更改为完全不同的值。
EN

Stack Overflow用户
提问于 2013-11-04 21:39:12
回答 1查看 48关注 0票数 0

我需要你的帮助,

下面我有以下的功能。正在发生的情况是,当它被执行时,它会将我的本地文件号(x)更改为XAI-2012-402518,而它应该在末尾添加a-2,然后每次都会增加它。

期望的结果是:XAI-2012-402517-2而不是XAI-2012-402518

通常,在字符串中没有任何破折号,它的工作很好,但我认为函数混淆了破折号。

其他例子有:

代码语言:javascript
复制
filenumber -> filenumber-2
filenumber2 -> filenumber-3
XAI-2012-402517 -> XAI-2012-402517-2
XAI-2012-402517-2 -> XAI-2012-402517-3
XAI-2012-402517-3 -> XAI-2012-402517-4

ect。

代码语言:javascript
复制
function test2(){ 
    var x = "XAI-2012-402517"

    x = x.replace(/^(.+?)(-\d+)?$/, function(a,b,c) { return c ? b+(c-1) : a+'-2'; } );

    alert(x)
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-04 22:01:54

你的功能完全正确。您有一个算法“捕获最后一个破折号之后的数字,并将其增加一个”。在"XAI-2012- 402517“中,破折号后面的数字是402517,因此需要增加。

为了解决这个问题,您需要对条件设置一个限制。例如,如果破折号小于100,则只希望增加最后一个数字:

代码语言:javascript
复制
    function test2(x){ 
            x = x.replace(/^(.+?)(-\d{0,2})?$/, function(a,b,c) { 
            return c ? b+(c-1) : a+'-2'; } );
            console.log(x)
    }
    test2("XAI-2012-402517") //XAI-2012-402517-2
    test2("XAI-2012-402517-2") //XAI-2012-402517-3
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19777668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档