Чи можна було б змінити
Hello, this is Mike (example)
до
Hello, this is Mike
використовуючи JavaScript з регулярним виразом?
Відповіді:
"Hello, this is Mike (example)".replace(/ *\([^)]*\) */g, "");
Результат:
"Hello, this is Mike"
(example)лише
var str = "Hello, this is Mike (example)";
alert(str.replace(/\s*\(.*?\)\s*/g, ''));
Це також замінить надлишок пробілів до і після дужок.
Спробуйте / \([\s\S]*?\)/g
Де
( пробіл) буквально відповідає символу (пробіл)
\(відповідає персонажу (буквально
[\S\s]відповідає будь-якому символу ( \Sзбігається з будь- яким символом, що не є пробілом, і
\sвідповідає будь-якому пробілу)
*? збігається від нуля до необмеженого часу
\)відповідає персонажу )буквально
g відповідає глобально
Приклад коду:
var str = "Hello, this is Mike (example)";
str = str.replace(/ \([\s\S]*?\)/g, '');
console.log(str);
.as-console-wrapper {top: 0}
Я знайшов цю версію найбільш підходящою для всіх випадків. Він не видаляє всі пробіли.
Наприклад "a (тест) b" -> "a b"
"Hello, this is Mike (example)".replace(/ *\([^)]*\) */g, " ").trim();
"Hello, this is (example) Mike ".replace(/ *\([^)]*\) */g, " ").trim();
trimне підтримується універсально: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… , принаймні це не було в 2015 році ... у 2017 році це виглядає набагато краще.