gpt4 book ai didi

javascript - 在替换第 n 个子字符串 Google 脚本中将变量添加到 RegEx

转载 作者:行者123 更新时间:2023-12-03 02:21:24 26 4
gpt4 key购买 nike

我正在尝试向函数调用添加变量

原来的函数来自这里 Find and replace nth occurrence of [bracketed] expression in string

var s = "HELLO, WORLD!";
var nth = 0;
s = s.replace(/L/g, function (match, i, original) {
nth++;
return (nth === 2) ? "M" : match;
});
alert(s); // "HELMO, WORLD!";

我正在尝试这样做

function ReplaceNth_n() {

Logger.log(ReplaceNth("HELLO, WORLD!", "L", "M"))

}

function ReplaceNth(strSearch,search_for, replace_with) {
var nth = 0;
strSearch = strSearch.replace(/search_for/g, function (match, i, original) {
nth++;
return (nth === 2) ? replace_with : match;
});
return strSearch
}

这部分失败;更换

s = s.replace(/L/g, 函数(匹配, i, 原始)

strSearch = strSearch.replace(/search_for/g, 函数(匹配、i、原始)

我尝试过各种变化

strSearch = strSearch.replace('/'+ search_for +'/g', function (match, i, original)

但不知道如何做到这一点

谢谢

最佳答案

您可以使用new RegExp从变量创建正则表达式。以下代码应该可以工作:

function ReplaceNth_n() {

Logger.log(ReplaceNth("HELLO, WORLD!", "L", "M"))

}

function ReplaceNth(strSearch,search_for, replace_with) {
var nth = 0;
strSearch = strSearch.replace(new RegExp(search_for, 'g'), function (match, i, original) {
nth++;
return (nth === 2) ? replace_with : match;
});
return strSearch
}

ReplaceNth_n() //output 'HELMO, WORLD!'

请正确格式化您的代码部分...

关于javascript - 在替换第 n 个子字符串 Google 脚本中将变量添加到 RegEx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49140755/

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