JavaScript / Regex: Entfernen Sie Text zwischen Klammern


92

Wäre es möglich zu ändern

Hello, this is Mike (example)

zu

Hello, this is Mike

Verwenden von JavaScript mit Regex?

Antworten:


207
"Hello, this is Mike (example)".replace(/ *\([^)]*\) */g, "");

Ergebnis:

"Hello, this is Mike"

14
Beachten Sie, dass .replace () die Zeichenfolge selbst nicht ändert, sondern nur eine neue Zeichenfolge zurückgibt. Sie müssen die Variable also immer noch so einstellen, dass sie dem entspricht, was Sie geändert haben.
Ayub

2
Wenn sich die Klammern in der Mitte einer Zeichenfolge befinden, werden durch den obigen regulären Ausdruck alle Leerzeichen um sie herum entfernt. Das ist wahrscheinlich nicht gut.
Nigel Johnson

1
Wie macht man das umgekehrt? Ich will (example)nur
Karte

Funktioniert nicht, wenn Sie etwas haben wie: Es ist ein bisschen durcheinander (oben (rechts)), aber es passiert :)
TigrouMeow

26
var str = "Hello, this is Mike (example)";

alert(str.replace(/\s*\(.*?\)\s*/g, ''));

Dadurch werden auch überschüssige Leerzeichen vor und nach den Klammern ersetzt.


6

Versuchen / \([\s\S]*?\)/g

Wo

(Leerzeichen) entspricht buchstäblich dem Zeichen (Leerzeichen)

\(passt (buchstäblich zum Charakter

[\S\s]Entspricht einem beliebigen Zeichen ( \SEntspricht einem Nicht-Leerzeichen und \seinem Leerzeichen)

*? Übereinstimmungen zwischen null und unbegrenzten Zeiten

\)passt )buchstäblich zum Charakter

g passt global

Codebeispiel:

var str = "Hello, this is Mike (example)";
str = str.replace(/ \([\s\S]*?\)/g, '');
console.log(str);
.as-console-wrapper {top: 0}


1

Ich fand diese Version für alle Fälle am besten geeignet. Es werden nicht alle Leerzeichen entfernt.

Zum Beispiel "a (Test) b" -> "a b"

"Hello, this is Mike (example)".replace(/ *\([^)]*\) */g, " ").trim(); "Hello, this is (example) Mike ".replace(/ *\([^)]*\) */g, " ").trim();


Vorsicht trimwird nicht allgemein unterstützt: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… , zumindest war es nicht im Jahr 2015 ... im Jahr 2017 sieht es viel besser aus.
Christophe Roussy

scheitert mit "dies (Beispiel (hier) welches) ist nicht gut". dh. verschachtelte Parens!
Marc

1

Wenn Sie auch Text in verschachtelten Klammern entfernen müssen, dann:

        var prevStr;
        do {
            prevStr = str;
            str = str.replace(/\([^\)\(]*\)/, "");
        } while (prevStr != str);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.