molily: Regulärer Ausdruck nach Klammern suchen

Beitrag lesen

Hallo,

würde gern eine String nach "()" den Klammern abprüfen.

Einfach prüfen, ob diese beiden Zeichen irgendwo im String vorkommen?

string.match("[()]+") funktioniert nicht, und entwerten ( string.match("[()]+") ) geht auch nicht. Hab noch einiges mehr ausprobiert, ich schaff es aber nicht den Ausdruck so auf zu bauen, dass er die Runden Klammern als Zeichen akzeptiert.

Ich weiß ja nicht, von welchem Browser du sprichst, aber in Firefox ergibt "bla(bla".match("[()]+") einen Array mit einem Element, nämlich dem String "(", das ist der erste Treffer.

Wenn du einen Array mit allen Treffern haben willst, musst du den RegExp-Literal /[()]+/g übergeben (mit http://de.selfhtml.org/javascript/objekte/regexp.htm#allgemeines@title=global-Flag).

Wenn ich ein new RegExp(/[()]+/) mache

/[()]+/ erzeugt bereits ein RegExp-Objekt, es ist unnötig, da nochmal new RegExp herum zu schreiben.

und das ganze mit .test(string) abprüfe funktioniert es.

Äh - was erwartest du denn als Rückgabewert? test() macht einfach was anderes als match().
test() gibt true oder false zurück, match() gibt einen Array mit Treffern oder null zurück.

Ich steh auf der Leitung wieso das mit Match nicht funktioniert...?!

WAS »funktioniert nicht«?

Mathias