yusuf: Regular Expressions

Hallo,
das Textfragment, das ersetzt werden muss, ist (1):

var Suche = new RegExp('(1)', 'g');
oder
var Suche = /(1)/g;

Aber es sieht so aus, dass JavaScript die Klammern nicht als Teil des Textes versteht, sondern als Hilfssymbole.

Was mache ich falsch?

  1. Lieber yusuf,

    Was mache ich falsch?

    vor die Klammern muss jeweils ein Backslash.

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. vor die Klammern muss jeweils ein Backslash.

      Das habe ich schon vorher ausprobiert. Bei mir funktioniert es trotzdem nicht. :(

  2. n'abend,

    das Textfragment, das ersetzt werden muss, ist (1):

    Die Klammerzeichen ( und ) haben bei Regular Expressions eine besondere bedeutung, müssen also maskiert werden, wenn du sie literal benutzen möchtest.

    var Suche = new RegExp('(1)', 'g');

    var Suche = new RegExp('\\\(1\\\)', 'g');

    var Suche = /(1)/g;

    var Suche = /\(1\)/g;

    Die drei aufeinanderfolgenden  Backslashes im new RegExp() Beispiel sind durchaus korrekt. Dummerweise wird im RegExp-Kapitel nur das RegExp-Literal, nicht aber das RegExp-Objekt gezeigt. Deshalb findet man dort auch keinen Hinweis darauf, dass die Backslashes innerhalb eines Strings an sich escaped werden müssen, damit sie Ihre eigentliche Bedeutung erhalten.

    weiterhin schönen abend...

    --
    #selfhtml hat ein Forum?
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
    1. Lieber globe,

      weiterhin schönen abend...

      um 11:53 Uhr?

      Liebe Grüße,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    2. var Suche = new RegExp('\\\(1\\\)', 'g');

      Ah, jetzt, ja!
      Vielen Dank!

    3. Hallo,

      var Suche = new RegExp('\\\(1\\\)', 'g');

      '\(1\)' reicht völlig
      Erklärung siehe </archiv/2008/6/t172530/#m1130846>

      Mathias