Rene Rose: Probleme mit Replace

Hallo Community!

Ich stoße immer wieder auf Ungereimtheiten mit dem Replace in einerm String. Laut Beschreibung zu den regulären Ausdrücken, sollte ich wie folgt:

//Liest einen Titel aus der API
strTSDocument = collDocuments.ItemAt(i).GetDocumentTitle();

//Soll eigentlich alle Punkte gegen Unterstiche tauschen
strDocumentName = strTSDocument.replace(/./, "_" )

aus dem Titel:

Adidas-Salomon AG O.N.

erhalten:

Adidas-Salomon AG O_N_

Ich erhalte statt dessen aber:

_Didas-Salomon AG O.N.

Ist das ein spezielles Problem mit dem Pünktchen oder habe ich etwas falsch verstanden, was die Anwendung des RegExp angeht?

  1. Hi Rene!

    //Soll eigentlich alle Punkte gegen Unterstiche tauschen
    strDocumentName = strTSDocument.replace(/./, "_" )

    Der Punkt steht in RegEx für ein beliebiges Zeichen. In dem Fall das erste, wie auch am Ergebnis zu erkennen ist:

    _Didas-Salomon AG O.N.

    Ist das ein spezielles Problem mit dem Pünktchen oder habe ich etwas falsch verstanden, was die Anwendung des RegExp angeht?

    Der Punkt muss escaped werden. In der Regel geschieht das per Backslash.

    mfG
    Benjamin

    --
    Selfcode: ie:} fl:{ br:> va:) ls:< fo:( rl:? n4:# ss:| de:] js:| ch:? sh:( mo:? zu:)
    "Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung."
    (Albert Einstein)
    1. Hi Rene!

      //Soll eigentlich alle Punkte gegen Unterstiche tauschen
      strDocumentName = strTSDocument.replace(/./, "_" )
      Der Punkt steht in RegEx für ein beliebiges Zeichen. In dem Fall das erste, wie auch am Ergebnis zu erkennen ist:

      _Didas-Salomon AG O.N.

      Ist das ein spezielles Problem mit dem Pünktchen oder habe ich etwas falsch verstanden, was die Anwendung des RegExp angeht?
      Der Punkt muss escaped werden. In der Regel geschieht das per Backslash.

      mfG
      Benjamin

      Hallo Benjamin!

      Vielen Dank für die Antwort. Das erklärt einige Dinge, die mich in den vergangenen Tagen sehr verwundert haben. Könntest Du mir "escaped werden" erläutern? ich verstehe das nicht.

      1. Hi Rene!

        Könntest Du mir "escaped werden" erläutern? ich verstehe das nicht.

        Escapen heißt, du musst den Escape-Character voranstellen, wenn du z.B. nach einem Punkt suchen willst. Das sieht dann so aus: /./

        Beachte, dass das nur den ersten Punkt findet, wenn du alle ersetzen willst, wird der Reguläre Ausdruck etwas komplexer.

        mfG
        Benjamin

        --
        Selfcode: ie:} fl:{ br:> va:) ls:< fo:( rl:? n4:# ss:| de:] js:| ch:? sh:( mo:? zu:)
        "Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung."
        (Albert Einstein)
        1. Benjamin, vielen Dan. Damit kann ich arbeiten. Du hast mir sehr geholfen.

          1. Hi Rene!

            Benjamin, vielen Dan. Damit kann ich arbeiten. Du hast mir sehr geholfen.

            Freut mich. Ich hätte da noch einen Link, wo ganz gut beschrieben wird, wie man mehrere Instanzen ersetzen kann:
            http://www.bennadel.com/blog/142-Ask-Ben-Javascript-String-Replace-Method.htm

            mfG
            Benjamin

            --
            Selfcode: ie:} fl:{ br:> va:) ls:< fo:( rl:? n4:# ss:| de:] js:| ch:? sh:( mo:? zu:)
            "Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung."
            (Albert Einstein)
            1. Benjamin vielen Dank!!!!

              Ich schreibs noch mal: Vielen Dank, weil die Seite sonst meckert :)

  2. Ich stoße immer wieder auf Ungereimtheiten mit dem Replace in einerm String. Laut Beschreibung zu den regulären Ausdrücken, sollte ich wie folgt:

    Keine Ahnung welche Beschreibungen du nutzt, vielleicht verstehst du ja selfhtml besser:
    http://de.selfhtml.org/javascript/objekte/string.htm#replace
    http://de.selfhtml.org/javascript/objekte/regexp.htm
    (Hier ist auch die Bedeutung des Punkts erklärt)

    Struppi.