Thomas: Regex, alles entfernen bis auf (

Hallo,

wie kann ich mit JS und Regex aus einem String alle Zeichen entfernen außer einer geöffneten Klammer, also ( ?

thx+lg
Thomas

  1. Hallo Thomas.

    wie kann ich mit JS und Regex aus einem String alle Zeichen entfernen außer einer geöffneten Klammer, also ( ?

    Wie viele Klammern können in der Zeichenkette vorkommen?

    Gegebenfalls brauchst du gar keinen regulären Ausdruck und http://de.selfhtml.org/javascript/objekte/string.htm#index_of@title=indexOf in Verbindung mit http://de.selfhtml.org/javascript/objekte/string.htm#substr@title=substr genügt bereits.

    Einen schönen Donnerstag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]
  2. Hi,

    in dem du alle Zeichen die keine Klammer "(" sind vor und nach deiner Klammer "(" auswählst und dann mittels ereg.Replace() oder wie auch immer deine RegEx Implementierung für so etwas zu verwenden ist die beschriebenen Nicht-Klammer-Zeichen durch Nichts ersetzt.

    ([^(]*)(([^(]*)

    Alternativ kannst du natürlich auch einfach das Zeichen Klammer "(" extrahieren, dann hast du keine anderen Zeichen dabei.
    Da ( aber in RegEx's eine spezielle Bedeutung hat, du aber nach dem Literal suchst, solltest du es wohl maskieren, ich glaube der Backslash "" ist für soetwas gut.

    (

    Grüsse,
    Frank

  3. gudn tach!

    wie kann ich mit JS und Regex aus einem String alle Zeichen entfernen außer einer geöffneten Klammer, also ( ?

    wenn nur 0 oder 1 klammern "(" vorkommen koennen, dann hat Ashura mit indexOf bereits einen guten tipp gegeben.

    angenommen dein string heisst str:
    str=(str.indexOf("(")==-1)?"":"(";

    wenn der string mehrere klammern enthalten kann und alle behalten werden sollen, kannst du jene einfach zaehlen und einen neuen string mit eben so vielen klammern erzeugen:

    var str_neu="";  
    for(var i=1;i<str.split("(").length;++i) str_neu+="(";
    

    prost
    seth