Есть строка:
let str = 'Телефон (ERT-266252) розовый (art72378fd) 128 гигабайт ОЗУ'
Мы хотим удалить всё, что находится внутри круглых скобок, но оставить сами скобки. Как это сделать?
Решение
Нам нужно написать шаблон регулярного выражения.
/(\()(.*?)(\))/g
В этом выражении работает три захвата:
- (\()
- (.*?)
- (\))
Первый ищет левую круглую скобку
Второй ищет содержимое между левой и правой скобкой
Третий ищет правую круглую скобку
В конце выражения RegExp мы добавляем глобальный флаг ‘g‘ для сопоставления шаблона по всей строке. Это нужно если пар круглых скобок будет несколько.
Производить замену мы будем при помощи метода replace(), который наследуется всеми строками String.
str.replace(/(\()(.*?)(\))/g, '$1$3')
Мы отбрасываем серединную часть.
Обратными слешами мы экранируем символы круглых скобок, чтобы воспринимать их как дизъюнкции, а не как управляющие символы Атома.
Результат работы выражения:
Теперь наша строка имеет вид:
'Телефон () розовый () 128 гигабайт ОЗУ'
Мы успешно удалили информацию внутри круглых скобок
Информационные ссылки
Стандарт ECMAScript — Раздел «22.2 RegExp (Regular Expression) Objects» — https://tc39.es/ecma262/multipage/text-processing.html#sec-regexp-regular-expression-objects