gpt4 book ai didi

javascript替换多个正则表达式匹配项之一

转载 作者:行者123 更新时间:2023-11-30 12:50:17 26 4
gpt4 key购买 nike

我正在制作一个读取 .txt 文件并将其放入变量的脚本,如下所示:

myString = "blablabla [12], foo bar bar[2], bar foo[34], hello hello [95], wheres my sandwich [2745]";

我设法生成了一个包含括号之间所有值的数组,为此我使用了这行代码:parameters = myString.match(/[^[]+(?=\])/g );

现在我可以通过调用 parameters[n]

轻松获取这些值中的任何一个

我现在想做的就是更改 [ ] 之间的其中一个元素的值,并将其注入(inject)回字符串,但我不知道该怎么做。当然,如果我使用以下行:

myString = myString.replace(/[^[]+(?=\])/g, "newValue");

所有元素都将被替换,所以我将得到一个字符串,如 blablabla [newValue]、foo bar bar[newValue]、bar foo[newValue]、hello hello [newValue]、wheres my sandwich [newValue] ]

最佳答案

String.prototype.replace不仅接受字符串,还可以作为替换。如果传递函数,函数的返回值将用作替换字符串。

使用该功能:

var nth = 0;
myString.replace(/[^[]+(?=\])/g, function(match) {
// Change only the 2nd matched string.
return ++nth == 2 ? "newValue" : match;
});
// => "blablabla [12], foo bar bar[newValue], bar foo[34], hello hello [95],
// wheres my sandwich [2745]"

关于javascript替换多个正则表达式匹配项之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21204550/

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