[英]How to replace a string with square brackets using javascript replace function?
我有一个字符串[TEST] [NO CHANGE] [TEST] [NOW] [TEST],其中[TEST]应该替换为'replaced',结果应该替换为[NO CHANGE] replaced [NOW] replace。
我尝试了以下方法,但没有任何效果。 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]替换后:替换[NO CHANGE]已替换[NOW]已替换
您在replace
正则表达式正在查找用单引号引起来的字符串'[TEST]'
,并希望与TEST中的任何字符匹配,因为您没有逃脱括号。 尝试使用以下正则表达式:
var resultStr = str.replace(/\[TEST\]/g, 'replaced');
[]
在正则表达式中有特殊含义,即字符类 ,如果要匹配[]
,则需要对其进行转义
var str = "[TEST][NO CHANGE][TEST][NOW][TEST]"; var resultStr = str.replace(/\\[TEST\\]/g, 'replaced'); console.log(resultStr)
尝试使用下方代码段进行更新。
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);
替换了[NO CHANGE]替换了[NOW]替换了
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.