Andreas: Regexpression mit Javascript

Ich habe einen Text, in dem ich ALLE vorkommenden Kommas, denen ein Buchstabe folgt, durch ein Komma und ein Leerzeichen und dann den folgenden Buchstaben ersetzen moechte.
Hier ein Codeschnippsel, der soweit laeuft, das das ERSTE gefunden Komma korrekt ersetzt wird:

---schnipp---
<script language="JavaScript">
 erst = "aa,bb cc,dd";
 dann= erst.replace(/,(\w.+)/g,", $1");
 document.write(dann);
</script></body></html>
---schnipp---

Eigentlich sollten doch durch den Modifikator 'g' der gesamte String durchsucht werden und dann dementsprechend ersetzt werden. Nur das funktioniert bei mir nicht.
Kann mir bitte jemand sagen,wo der Fehler ist bzw. einen anderen moeglichen loesungsvorschlag unterbreiten?

Danke Andreas

  1. hi andreas,

    hier http://manyak.online.de/
    versuch's mal hiermit

    var reg = new RegExp("(,)(\S)", "g");

    bye,
    manyak online
    http://manyak.online.de/

    1. Hi,

      var reg = new RegExp("(,)(\S)", "g");

      var reg = new RegExp(",","g"); sollte es auch tun

      ansonsten ist es nicht sonderlich ratsam, regexe in JS anzuwenden - die sind sehr fehlerhaft
      implementiert, gerade im MS-Bereich.....
      Du solltest ueberlegen, auf "herkoemmliche" String-Funktionen zurueck zu greifen.

      Gruss,
       Christian
       http://wwwtech.de

      1. Hi,

        var reg = new RegExp("(,)(\S)", "g");
        var reg = new RegExp(",","g"); sollte es auch tun

        das wird es leider nicht tun.

        ansonsten ist es nicht sonderlich ratsam, regexe in JS anzuwenden - die sind sehr fehlerhaft
        implementiert, gerade im MS-Bereich.....
        Du solltest ueberlegen, auf "herkoemmliche" String-Funktionen zurueck zu greifen.

        Gruss,
        Christian
        http://wwwtech.de

    2. var reg = new RegExp("(,)(\S)", "g");

      Damit hab ich auch schon mal rumprobiert, aber wann kommt denn die eigentliche Ersetzung in dem String. Das kapier ich nicht bzw. stelle mich zu doof an.
      Kannst du mir evtl. ein Beispiel schicken?

      Danke Andreas

  2. Sup!

    Wenn ich mich nicht irre, dann ersetzt replace() sowieso alle Treffer des Ausdrucks, von daher ist das g wahrscheinlich total unnötig und evtl. ein Fehler.

    Wenn Du das mit dem g machen willst, ist vielleicht string.exec(regexp) besser geeignet.

    Gruesse,

    Bio

  3. Hier ist eine kleine Funktion, die ein beliebig oft vorkommendes vordefiniertes Zeichen in einer Zeichenkette durch ein anderes ersetzt. Falls Du das meintest, dann ist Dir damit geholfen, hoffe ich.

    <script language="JavaScript">
     var erst = "la la la";
     var dann = "";
     var zuersetzen = " ";
     var ersetzendurch = "+";

    function suchenersetzen(){
      for(i=0; i < erst.length ;i++)
       if(erst.charAt(i) == zuersetzen)
       { dann = dann + ersetzendurch}
       else
        {dann = dann + erst.charAt(i);}

    alert(dann);
     }
     suchenersetzen();
    </script>

    Gruß

    Saadat

  4. Hallo Andreas

    Also dieser Code funktioniert sowohl mit NN als auch IE:
    var erst = "aa,bb cc,dd";
    var dann= erst.replace(/,(\w)/g,", $1");
    alert(dann);

    MfG

    Daniel