Регулярное выражение. Найти и заменить текст в строке

let text = 'Подробности из [club21025810|Воронежской], [club48393292|Московской], [club34267625|Ивановской], [club152332992|Смоленской], [club26484430|Тамбовской], [club67497363|Челябинской областей], [club198946136|Краснодарского края], [club82258040|Санкт-Петербурга], [club143695131|Москвы] в нашем видео.';

var matches = text.match(/[(.*?)]/);

console.log(matches[1]);

Здравствуйте. Я хочу найти в тексте все данные в квадратных скобках [] и оставить только название из скобки

Вот, что я хочу получить: Подробности из Воронежской, Московской, Ивановской, Смоленской, Тамбовской, Челябинской областей, Краснодарского края, Санкт-Петербурга, Москвы в нашем видео.

Но у меня почему-то не получается. Что я не так делаю?


Ответы (1 шт):

Автор решения: vsemozhebuty

Попробуйте так (экранируем спецсимволы, запоминаем всё между знаком | и закрывающей скобкой и меняем всю группу в скобках на этот отрезок):

const text = 'Подробности из [club21025810|Воронежской], [club48393292|Московской], [club34267625|Ивановской], [club152332992|Смоленской], [club26484430|Тамбовской], [club67497363|Челябинской областей], [club198946136|Краснодарского края], [club82258040|Санкт-Петербурга], [club143695131|Москвы] в нашем видео.';

const newText = text.replace(/\[.+?\|(.+?)\]/g, '$1');

console.log(newText);

→ Ссылка