Vb1988: Erstes Argument in replace() Funktion per "Variable" übergeben

Hallo, ich möchte, dass die Übergabe des ersten Arguments /Hinz/g nicht als "fester String" Hinz, sondern als Variable Hinz übergeben wird, also:

var HinzAlsVariable = "Hinz"
var jetzt = vormals.replace(/?????/g, "Kunz, geb. Hinz");

-Was muss dort stehen, wo jetzt die fünf Fragezeichen sind?

function ersetzen() {
//var HinzAlsVariable = "Hinz"
  var vormals = "Elke Hinz";
  var jetzt = vormals.replace(/Hinz/g, "Kunz, geb. Hinz");
  ausgabe(jetzt);
}
  1. Hi,

    ich möchte, dass die Übergabe des ersten Arguments /Hinz/g nicht als "fester String" Hinz, sondern als Variable Hinz übergeben wird, also:

    var HinzAlsVariable = "Hinz"
    var jetzt = vormals.replace(/?????/g, "Kunz, geb. Hinz");
    

    -Was muss dort stehen, wo jetzt die fünf Fragezeichen sind?

    ein RegExp-Objekt. Alternativ zum unmittelbaren Hinschreiben kann man das auch mit new RegExp(...) erzeugen. Dann hat man alle Freiheiten.

    So long,
     Martin

    --
    Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
    - Douglas Adams, The Hitchhiker's Guide To The Galaxy
  2. Tach!

    ich möchte, dass die Übergabe des ersten Arguments /Hinz/g nicht als "fester String" Hinz, sondern als Variable Hinz übergeben wird, also:

    Der erste Parameter ist in dem Fall ein RegExp-Objekt. Das gibt es als Literalschreibweise, so wie im Beispiel zu sehen, aber auch als zu Fuß erzeugbares Objekt. Und dessen Konstruktor nimmt einen String entgegen.

    dedlfix.

    1. noch eine Antwort, bitte

      1. Hallo Vb1988,

        noch eine Antwort, bitte

        Beschreib doch mal, was du eigentlich erreichen möchtest. Vielleicht gibt es ganz andere Herangehensweisen.

        Bis demnächst
        Matthias

        --
        Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
      2. noch eine Antwort, bitte

        Hallo Vb1988,

        im Prinzip so:

        test = "Hallo du da da";
        weg = /da/g; 
        alert(test + " | " + test.replace(weg, ""));
        

        Grüße, Martl

        (Wenn Plan A nicht funktioniert: Keine Panik, das Alphabet hat noch weitere 25 Buchstaben)

        1. Es funktioniert. Danke, Martl

          -Die Funktion (unten) soll "Hahaha" zu "Hohoho" umwandeln, aber die Funktion gibt "Hohaha" aus. Wie setzt man den Globalparameter /g ein, damit "Hohoho" herauskommt? Die Variable "nimmRaus" soll weiterhin verwendet werden.

          ersetzen("Hahaha","a","o");
          
          function ersetzen(s2,nimmRaus,nimmRein) {
          alert(s2.replace(nimmRaus,nimmRein));
          }
          
          1. Tach!

            -Die Funktion (unten) soll "Hahaha" zu "Hohoho" umwandeln, aber die Funktion gibt "Hohaha" aus. Wie setzt man den Globalparameter /g ein, damit "Hohoho" herauskommt? Die Variable "nimmRaus" soll weiterhin verwendet werden.

            Erzeuge ein RegExp-Objekt. Dem kannst du Flags als extra-Parameter im Konstruktor übergeben.

            dedlfix.

            1. noch eine Antwort, bitte.

              1. Hallo,

                noch eine Antwort, bitte.

                ich hatte dir doch schon Mitte der Woche die Anleitung verlinkt, wie's geht. Lesen und abschreiben (bzw. in dein Script einfügen) musst du schon selber. Oder sind Links für dich nur Verzierung im Text?

                So long,
                 Martin

                --
                Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
                - Douglas Adams, The Hitchhiker's Guide To The Galaxy
              2. Tach!

                noch eine Antwort, bitte.

                Was soll ich damit anfangen? Wenn du eine Frage hast, dann stell sie bitte konkret.

                dedlfix.

                1. dedlfix wrote:

                  noch eine Antwort, bitte. Wenn du eine Frage hast, dann stell sie bitte konkret.

                  Meine konkrete Frage war:

                  -Die Funktion (unten) soll "Hahaha" zu "Hohoho" umwandeln, jedoch gibt die Funktion "Hohaha" aus. Wie setzt man den Globalparameter /g ein, damit "Hohoho" herauskommt? Die Variable "nimmRaus" soll weiterhin verwendet werden.

                  ersetzen("Hahaha","a","o");
                  
                  function ersetzen(s2,nimmRaus,nimmRein) {
                  alert(s2.replace(nimmRaus,nimmRein));
                  }
                  
                  
                  1. Hi,

                    Meine konkrete Frage war:

                    -Die Funktion (unten) soll "Hahaha" zu "Hohoho" umwandeln, jedoch gibt die Funktion "Hohaha" aus. Wie setzt man den Globalparameter /g ein, damit "Hohoho" herauskommt? Die Variable "nimmRaus" soll weiterhin verwendet werden.

                    ja, und die Frage ist doch ausgiebig beantwortet worden. Was willst du noch mehr??

                    So long,
                     Martin

                    --
                    Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
                    - Douglas Adams, The Hitchhiker's Guide To The Galaxy
                    1. Martin wrote: ja, und die Frage ist doch ausgiebig beantwortet worden. Was willst du noch mehr??

                      meine Frage wurde nicht ausgiebig beantwortet. Deshalb möchte ich gerne noch eine Antwort.

                      1. Hallo Vb1988,

                        meine Frage wurde nicht ausgiebig beantwortet. Deshalb möchte ich gerne noch eine Antwort.

                        „Erzeuge ein RegEx-Objekt“ ist ausgiebig. Wenn du damit nicht klarkommst, musst du schon versuchen, dich zu artikulieren, warum das nicht geht.

                        Bis demnächst
                        Matthias

                        --
                        Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                      2. Tach!

                        ja, und die Frage ist doch ausgiebig beantwortet worden. Was willst du noch mehr??

                        meine Frage wurde nicht ausgiebig beantwortet. Deshalb möchte ich gerne noch eine Antwort.

                        Wenn du wissen möchtest, wie man dieses RegExp-Objekt erzeugt, dann musst du die Frage genauso stellen. Ich kann nicht hellsehen, was an meiner Antwort für dich nicht verständlich ist. Das Erzeugen von Objekten halte ich für Grundlagenwissen, das ich eigentlich voraussetze oder in der Dokumentation nachgelesen werden kann. Wenn dir dieses Wissen fehlt oder du grad nicht darauf kommst, wie das im konkreten Fall anzuwenden geht, musst du dich entsprechend artikulieren, dann kann ich darauf konkret eingehen. Ein "noch eine Antwort bitte" hilft mir nicht beim Verstehen deines Problems.

                        dedlfix.

                2. dedlfix wrote:

                  noch eine Antwort, bitte. Was soll ich damit anfangen? Wenn du eine Frage hast, dann stell sie bitte konkret.

                  hier meine konkrete Frage:

                  -Die Funktion (unten) soll "Hahaha" zu "Hohoho" umwandeln, aber die Funktion gibt "Hohaha" aus. Wie setzt man den Globalparameter /g richtig ein? Welche Änderung muss in der Funktion gemacht werden, damit "Hohoho" herauskommt?

                  ersetzen("Hahaha","a","o");
                  
                  function ersetzen(s2,nimmRaus,nimmRein) {
                  alert(s2.replace(nimmRaus,nimmRein));
                  }
                  
                  1. Hallo,

                    das war jetzt das dritte Mal, dass du diesen Text postest. Du kannst ihn noch x-mal posten und auch um weitere Antworten bitten. Du wirst, außer Verweisen auf die bereits gegebene Antwort, nur noch Diskussion auf der Meta-Ebene erhalten.

                    Es wäre jetzt Zeit, dass du auf die gegebene Antwort eingehst.

                    Gruß
                    Kalk

                  2. Hallo Vb1988,

                    dedlfix wrote:

                    Es ist nicht notwendig hinzuschreiben, von wem das Zitat stammt. Das ist aus der Struktur erkennbar.

                    Bis demnächst
                    Matthias

                    --
                    Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
          2. Lieber VB1988 - wie wär's denn mal mit selber nachlesen und Hirn einschalten. Sorry, bin von deinem "Noch eine Antwort bitte" etwas genervt, ich lese zwischen den Worten die Aussage "ich bin zu faul, mir den Inhalt der gegebenen Antwort selbst zu erschließen und bringe es nicht mal fertig, mich auf die Antwort so weit einzulassen dass ich klare Rückfragen stellen kann".

            /a/g ist das, was Du brauchst - eine RegExp mit Global-Flag. Diese RegExp ist ein Objekt, das JavaScript beim Laden deines Scripts automatisch erzeugt.

            Wenn Du das nicht automatisch willst, hast Du die RegExp Konstruktorfunktion zur Verfügung.

            var rx = new RegExp(muster, flags)
            

            erzeugt Dir ebenfalls ein RegExp Objekt, aber diesmal ist das Muster nicht in deinem Quellcode als Konstante, sondern du kannst Muster und Flags getrennt als String übergeben.

            new RegExp("a", "g")
            

            erzeugt das, was Du brauchst. Das musst Du jetzt an deinen Bedarf anpassen und dann als ersten Parameter an replace übergeben.

            Rolf