如何使用javascript替换功能将字符串替换为方括号?

时间:2019-07-03 16:59:39

标签: javascript replace str-replace

我有一个字符串[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] 替换后:替换[不更改]替换[现在]替换

3 个答案:

答案 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);
  

已替换[不更改]已替换[现在]已替换

enter image description here

Src:How to replace all occurrences of a string in JavaScript