Javascript 用Google脚本替换第n次出现的不起作用的特殊字符正则表达式

Javascript 用Google脚本替换第n次出现的不起作用的特殊字符正则表达式,javascript,regex,google-apps-script,Javascript,Regex,Google Apps Script,我试图用以下函数替换字符的第n次出现 它适用于字符串,但我想替换[WORLD!]HELLO[WORLD!] 我正在尝试模式/.\\[/,它在RerEx tester中工作,但在我的函数中不工作。我没有得到错误,只是没有替换 谢谢 function ReplaceNth_n() { Logger.log(ReplaceNth("[WORLD!] HELLO, [WORLD!]", "/.\\[/", "M", 2)) } function ReplaceNth(strSearch,sea

我试图用以下函数替换字符的第n次出现

它适用于字符串,但我想替换
[WORLD!]HELLO[WORLD!]

我正在尝试模式
/.\\[/
,它在RerEx tester中工作,但在我的函数中不工作。我没有得到错误,只是没有替换

谢谢

function ReplaceNth_n() {

Logger.log(ReplaceNth("[WORLD!] HELLO, [WORLD!]", "/.\\[/", "M", 2))

}  

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

使用
RegExp
创建正则表达式时,不应该在字符串中包含开头和结尾
/
,我也不明白为什么要在那里添加

  • 错误
    newregexp(“/test/”);
  • 正确
    新的RegExp(“测试”);
因此,作为
search\u for
参数传递的字符串应该是第n次出现的
\\[

^([^<char>]*(?:<char>[^<char>]*){<N-1>})<char>

如果要找到
char
N>0

而不是
新的RegExp
“/。\\[/”
只需使用
/\[/
。不过,我不确定你是否想要图案中的圆点。如果你打算否决我的问题,那么就说问题出在哪里,否则你只是作为一个成功的首席执行官,谢谢你。
之所以出现,是因为我对RegEx非常陌生,而且confused@xyz-那不是你的问题吗,第n次?
regexStr = '^([^' + char + ']*(?:' + char + '[^' + char + ']*){' + (N-1) + '})' + char;