【问题标题】:How to replace a string with square brackets using javascript replace function?如何使用javascript替换函数用方括号替换字符串?
【发布时间】:2019-07-03 16:59:39
【问题描述】:

我有一个字符串 [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] 替换后:替换[NO CHANGE]替换[NOW]替换

【问题讨论】:

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

标签: javascript replace str-replace


【解决方案1】:

[]在正则表达式中有一个特殊的含义,表示character class,如果你想匹配[]你需要将它们转义

var str = "[TEST][NO CHANGE][TEST][NOW][TEST]";
var resultStr = str.replace(/\[TEST\]/g, 'replaced'); 

console.log(resultStr)

【讨论】:

    【解决方案2】:

    尝试使用Below sn-p更新。

    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]替换

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

    【讨论】:

      【解决方案3】:

      replace 中的正则表达式正在寻找被这些单引号括起来的字符串 '[TEST]',并且正在寻找匹配 TEST 中的任何字符,因为您没有转义括号。试试这个正则表达式:

      var resultStr = str.replace(/\[TEST\]/g, 'replaced');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-26
        • 2013-10-25
        • 2012-03-13
        • 1970-01-01
        • 2013-08-14
        • 1970-01-01
        • 2019-07-31
        • 2015-02-26
        相关资源
        最近更新 更多