Удалить квадратные скобки и его содержимое из строки в javascript

Как убрать символы между двумя скобками и квадратными скобками. Например

Let it [Am]be, let it [C/G]be, let it [F]be, let it [C]be
[C]Whisper words of [G]wisdom, let it [F]be [C/E] [Dm] [C]

Я хочу, чтобы строка выше

Let it be, let it be, let it be, let it be
Whisper words of wisdom, let it be  

Я использую это регулярное выражение, но это только скобки.

var reg = /[\[\]']+/g
var x = song.replace(reg,"")
console.log(x);
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Сравнение структур данных: Массивы и объекты в Javascript
Сравнение структур данных: Массивы и объекты в Javascript
Итак, вы изучили основы JavaScript и хотите перейти к изучению структур данных. Мотивация для изучения/понимания Структур данных может быть разной,...
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Прошлая статья была первой из цикла статей о создании системы электронной коммерции с использованием Keystone.js, и она была посвящена главным образом...
Приложение для отслеживания бюджета на React js для начинающих
Приложение для отслеживания бюджета на React js для начинающих
Обучение на практике - это проверенная тема для достижения успеха в любой области. Если вы знаете контекст фразы "Практика делает человека...
Стоит ли использовать React в 2022 году?
Стоит ли использовать React в 2022 году?
В 2022 году мы все слышим о трендах фронтенда (React, Vue), но мы не знаем, почему мы должны использовать эти фреймворки, когда их использовать, а...
1
0
22
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно избежать внешний[], чтобы вы соответствовали им буквально и позволяли внутри все, кроме ]. Так:

var reg = /\[[^\]]*\]/g;

Вот разбивка (также по регулярное выражение101):

  • \[ соответствует [ буквально
  • [^\]] соответствует любому символу, который не является ]
  • * говорит «ноль или более» из них (поэтому он заменяет []; если вы этого не хотите, измените это на + для «один или несколько»)
  • \] соответствует ] буквально (мне, вероятно, не нужно избегать его там, но я все равно склоняюсь к нему)

Живой пример:

const song = `Let it [Am]be, let it [C/G]be, let it [F]be, let it [C]be
[C]Whisper words of [G]wisdom, let it [F]be [C/E] [Dm] [C]`;

var reg = /\[[^\]]*\]/g;
var x = song.replace(reg,"");
console.log(x);

Примечание: в современном JavaScript мы не используем var. Вместо этого используйте let или const.

Другие вопросы по теме