繁体   English   中英

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

[英]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]替换了

在此处输入图片说明

Src: 如何替换JavaScript中所有出现的字符串

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM