Как заменить строку в квадратных скобках, используя функцию замены JavaScript? - PullRequest
0 голосов
/ 03 июля 2019

У меня есть строка [ТЕСТ] [НЕТ ИЗМЕНЕНИЯ] [ТЕСТ] [СЕЙЧАС] [ТЕСТ], в которой [ТЕСТ] следует заменить на «заменено», а результат следует заменить [НЕТ ИЗМЕНЕНИЯ] заменить [СЕЙЧАС]заменил.

Пробовал следующими способами, ничего не получалось.1. str.replace (/ '[TEST]' / g, 'заменено');2. str.replace (/ [ТЕСТ] / г, «заменено»);3. str.replace ('/ [TEST] / g', 'заменено');

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

Фактическая строка: [TEST] [NO CHANGE] [TEST] [NOW] [TEST] после замены: заменено [НЕТ ИЗМЕНЕНИЯ] заменено [СЕЙЧАС] заменено

Ответы [ 3 ]

1 голос
/ 03 июля 2019

[] имеет специальное значение в регулярном выражении, которое означает класс символов , если вы хотите сопоставить [], вам нужно экранировать их

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

console.log(resultStr)
1 голос
/ 03 июля 2019

Попробуйте обновить с помощью фрагмента ниже.

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: Как заменить все вхождения строки в JavaScript

1 голос
/ 03 июля 2019

Ваше регулярное выражение в replace ищет строку '[TEST]', заключенную в эти одинарные кавычки, и ищет совпадения с любым из символов в TEST, поскольку вы не вышли за скобки.Попробуйте вместо этого следующее регулярное выражение:

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