我有一串

var oldName = "questions[0].answers[3].answer";


我想将答案部分增加到[4](当前值的+1)。
如果是questions[0].answers[6].answer,它应该成为问题[0] .answers [7] .answer。

我尝试了以下操作,但未得到任何结果。

var matches = oldName.match(/(\d+)answers(\d+)/)
var number1 = Number(matches[1]);
var number2 = Number(matches[2]);


我需要将数字存储在2个单独变量的字符串中。

最佳答案

做到这一点很简单,只需为String.replace提供替换功能:

str.replace(/answers\[(\d+)\]/, function (_, $1) {
     return "answers[" + (+$1 + 1) + "]";
});


(如果要说明替换功能的参数,可以阅读上面的MDN链接或my answer here

但是,我不知道这是否是解决更大问题的好方法。

关于javascript - javascript正则表达式跳过方括号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26711098/

10-12 12:45