Regex заменяет все вхождения текста с помощью скобок - PullRequest
0 голосов
/ 13 мая 2019

Короче говоря, мне нужно заменить каждое вхождение текста между скобками, включая скобки в строке, и текст, который будет заменен, будет в переменной в Javascript.Простое регулярное выражение в методе замены не будет работать из-за скобок.

Например, замените «[test] [teste] test [hello]» на переменную со значением «hi».Вывод: «привет, привет, тест [привет]»

Ответы [ 3 ]

1 голос
/ 13 мая 2019
"[test] [teste] test".replace(/\[.*?\]/g, 'hi')

снять скобки с "\" и использовать флаг g

edit: убрал флаг i и поменял w на. обрабатывать что-либо внутри скобок

0 голосов
/ 13 мая 2019

Итак, я нашел способ сделать так, чтобы моя переменная была заменена, например: var test = "[test]", затем я заменил в ней скобки, чтобы она стала "\ [test \]", затем я использовал:

var regex = new RegExp(test+"+","gm")

, затем я использовал это регулярное выражение в методе замены JS.

0 голосов
/ 13 мая 2019

Я не совсем уверен, что вы ищете, но .match сохранит совпадения в массиве, а .replace заменит вас.

const regex = /\[.*?\]/g;

var mutable = "[test] [teste] test";
const matches = mutable.match(regex); // Save all matches to an array
mutable = mutable.replace(regex, 'dude'); // Replace matches

console.log(mutable);
console.log(matches);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...