如何使用javascript替换函数用方括号替换字符串?

如何使用javascript替换函数用方括号替换字符串?,javascript,replace,str-replace,Javascript,Replace,Str Replace,我有一个字符串[TEST][NO CHANGE][TEST][NOW][TEST],其中[TEST]应替换为'replaced',结果应替换为[NO CHANGE]replaced[NOW]replacement 我试过以下方法,但没有效果。 1.str.replace/'[TEST]'/g,“replace'; 2.str.replace/[TEST]/g,“replace”; 3.str.replace'/[TEST]/g','replaced' var str = "[TEST][NO C

我有一个字符串[TEST][NO CHANGE][TEST][NOW][TEST],其中[TEST]应替换为'replaced',结果应替换为[NO CHANGE]replaced[NOW]replacement

我试过以下方法,但没有效果。 1.str.replace/'[TEST]'/g,“replace'; 2.str.replace/[TEST]/g,“replace”; 3.str.replace'/[TEST]/g','replaced'

var str = "[TEST][NO CHANGE][TEST][NOW][TEST]";
var resultStr = str.replace(/'[TEST]'/g, 'replaced'); 
实际字符串:[TEST][NO CHANGE][TEST][NOW][TEST]
替换后:替换[NO CHANGE]替换[NOW]替换

替换中的正则表达式正在查找由这些单引号包围的字符串“[TEST]”,并且正在查找与测试中的任何字符匹配的字符串,因为您没有转义括号。请尝试使用以下正则表达式:

var resultStr = str.replace(/\[TEST\]/g, 'replaced');
[]在正则表达式中有一个特殊的含义,这意味着,如果您想匹配[],您需要避开它们

var str=[TEST][NO CHANGE][TEST][NOW][TEST]; var resultStr=str.replace/\[TEST\]/g,“已替换”;
尝试使用下面的代码段更新console.logresultStr

String.prototype.replaceAll = function(search, replacement) {
    var target = this;
    return target.split(search).join(replacement);
};
var str = "[TEST][NO CHANGE][TEST][NOW][TEST]";
var result = str.replaceAll('\[TEST\]','replaced')
console.log(result);
已替换[未更改]已替换[现在]已替换


Src:

您需要转义方括号/\[TEST\]/g