我有一个字符串[TEST] [NO CHANGE] [TEST] [NOW] [TEST],其中[TEST]应该替换为'replaced',结果应该替换为[NO CHANGE] replaced [NOW]替换。
我尝试了以下方法,但没有任何效果。 1. str.replace(/'[TEST]'/ g,'replaced'); 2. str.replace(/ [TEST] / g,'replaced'); 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] 替换后:替换[不更改]替换[现在]替换
答案 0 :(得分:1)
您在replace
中的正则表达式正在寻找用单引号引起来的字符串'[TEST]'
,并希望与TEST中的任何字符匹配,因为您没有逃脱括号。尝试使用以下正则表达式:
var resultStr = str.replace(/\[TEST\]/g, 'replaced');
答案 1 :(得分:1)
[]
在regex中有特殊含义,即character class,如果要匹配[]
,则需要转义它们
var str = "[TEST][NO CHANGE][TEST][NOW][TEST]";
var resultStr = str.replace(/\[TEST\]/g, 'replaced');
console.log(resultStr)
答案 2 :(得分:1)
尝试使用下方代码段进行更新。
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:How to replace all occurrences of a string in JavaScript