gpt4 book ai didi

javascript - 无法用 JavaScript 正则表达式替换内容的中间部分?

转载 作者:行者123 更新时间:2023-11-29 21:46:51 24 4
gpt4 key购买 nike

我有一条短信

名称[一][1][二][45][文本]

我使用这种模式捕捉到文本“45”

/(.*?)rows\]\[([0-9]*)(.*)/;

但是我怎样才能用任何其他数字替换仅有的 45?因为如果我将相同的模式与替换方法一起使用,它会替换整个前一个单词。我的代码是

var name = "name[one][1][two][45][text]";
var pattern = /(.*?)two\]\[([0-9]*)(.*)/;
var number = name.match(pattern);
number = parseInt(number[2]);

var replacePattern = /(.*?)two\]\[([0-9]*)/;
var newName = name.replace(replacePattern, parseInt(number + 2));
console.log(newName);

但它返回 47][text]

最佳答案

But how can I replace the only 45 with any other digit?

您可以将替换功能与匹配的组一起使用:

例如——这里我将 45 替换为 7 :

   "name[one][1][two][45][text]".replace(/(.*?)(two\]\[)([0-9]*)(.*)/,function (a,b,c,d,e){
// replace 7 with what you want
return b+c+'7'+e;
})

Result :

"name[one][3][two][7][text]"

请注意,我已经添加了 () 以包含我稍后可以添加的其他部分。

编辑:关于您的实际示例 (+=2):you can do this :

return b+c+(parseInt(d)+2)+e; -- to your actual example

关于javascript - 无法用 JavaScript 正则表达式替换内容的中间部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30842680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com