Andreas: replace klappt nicht

hallo, habe folgendes Script was in einem phpbb Forum aus der übergebenen(vom Forum) Variable {TEXT} ein Bild als Tooltip anzeigen soll. Die Variable soll dabei von Leerzeichen und Hochkommas befreit werden damit der dyn. Link zum Bild funktioniert. Die Leerzeichen ent fernt er, die Hochkommas nicht. Wer kann mir helfen? Hab schon alles mögliche ausprobiert.

<script type="text/javascript">
var vormals = "{TEXT}";
var jetzt = vormals.replace(/ /g, '_');
var jetzt = jetzt.replace('''g, '');
document.write("<a target="_BLANK" href="http://magiccards.info/autocard/" + jetzt + "" class="tooltip" onClick="AutoCard('" + jetzt + "'); return false;">"+ vormals +"<span><b>{TEXT}</b><br /><img src="http://www.wizards.com/global/images/magic/general/" + jetzt + ".jpg"><br>" + jetzt + "</span></a>"
);
</script>

  1. Lieber Andreas,

    var jetzt = vormals.replace(/ /g, '_');
    var jetzt = jetzt.replace('''g, '');

    das zweite "var" sollte das erste irgendwie (zer-)stören... Jedenfalls kann das zweite "var" nur Ärger machen. Weg damit!

    Außerdem stimmt meines Wissens die Syntax im zweiten Replace-Statement nicht. Die Stringmethode "replace" erwartet als ersten Parameter meines Wissens einen regulären Ausruck (als Kurzschreibweise für ein RegExp-Objekt). Probiere es einmal mit dieser Version:

    jetzt = jetzt.replace(/\'/g, ''); // Wahrscheinlich ist der Backslash unnötig...

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hallo Felix!

      jetzt = jetzt.replace(/'/g, ''); // Wahrscheinlich ist der Backslash unnötig...

      Ist er. In RegExps escaped müssen nur Zeichen, die in RegExps eine besondere Bedeutung haben. Das Hochkomma hat so viel ich weiß keine.

      Viele Grüße aus Frankfurt/Main,
      Patrick

      --

      _ - jenseits vom delirium - _
      [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
      Nichts ist unmöglich? Doch!
      Heute schon gegökt?
      1. vielen Dank erstmal

        habs so auch schon probiert, gerade natürlich nochmal.
        hat leider noch nichts geholfen, bei der Ausgabe von jetzt sind immernoch die Hochkommas enthalten.

        mfg Andreas

        1. Hallo Andreas!

          vielen Dank erstmal

          habs so auch schon probiert, gerade natürlich nochmal.
          hat leider noch nichts geholfen, bei der Ausgabe von jetzt sind immernoch die Hochkommas enthalten.

          var vormals = "Ich bin 'ein' 'Text' mit 'vielen' ''' und noch mehr 'hier'";
          var jetzt = vormals.replace(/ /g, '_');
          jetzt = jetzt.replace(/'/g, '');
          alert(jetzt);

          Funzt(TM): Ich_bin_ein_Text_mit_vielen__und_noch_mehr_hier

          Wie sieht der Text aus, der an »vormals« übergeben wird?

          Viele Grüße aus Frankfurt/Main,
          Patrick

          --

          _ - jenseits vom delirium - _
          [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
          Nichts ist unmöglich? Doch!
          Heute schon gegökt?
          1. Hallo Andreas!

            vielen Dank erstmal

            habs so auch schon probiert, gerade natürlich nochmal.
            hat leider noch nichts geholfen, bei der Ausgabe von jetzt sind immernoch die Hochkommas enthalten.

            var vormals = "Ich bin 'ein' 'Text' mit 'vielen' ''' und noch mehr 'hier'";
            var jetzt = vormals.replace(/ /g, '_');
            jetzt = jetzt.replace(/'/g, '');
            alert(jetzt);

            Funzt(TM): Ich_bin_ein_Text_mit_vielen__und_noch_mehr_hier

            Wie sieht der Text aus, der an »vormals« übergeben wird?

            Viele Grüße aus Frankfurt/Main,
            Patrick

            Hallo,

            also, ein Beispiel jemand tippt Man-o'-War ein(eine Karte aus einem Sammelkartenspiel. Das Forum soll nun(macht es auch soweit) nach einem Bild suchen und dies als Tooltip anzeigen. Bei übergebenen Variablen ohne ' funktioniert es, Leerzeichen werden ersetzt, nur eben hochkommas nicht. alert gibt Man-o&#39;-War aus, bzw. die htmlausgabe am Ende des Scripts zeigt halt Man-O'-War an.

            Beispiel hier: http://d0ner.d0.funpic.de/viewtopic.php?f=3&t=49

            viele Grüße aus Trebur

            Andreas

            1. Lieber Andreas,

              Beispiel hier: http://d0ner.d0.funpic.de/viewtopic.php?f=3&t=49

              da steht als Link folgender HTML-Code: <a target="_BLANK" href="http://magiccards.info/autocard/Man-o%27-War" class="tooltip" onclick="AutoCard('Man-o'-War'); return false;">Man-o'-War<span><b>Man-o'-War</b>...

              Was genau suchst Du jetzt? Ein Hochkomma, eine HTML-Entitiy (&#39;) oder ein URL-maskiertes Hochkomma (%27)?

              Liebe Grüße aus Ellwangen,

              Felix Riesterer.

              --
              ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
            2. Hallo, hab die lösung.

              {TEXT} übergibt natürlich kein ' sondern &#39;
              Wenn ich nun die Zeichen ersetzen lasse funktioniert es

              Danke trotzdem für die Hilfe

              viele Grüße aus Trebur

              Andreas

              1. Hallo Andreas!

                {TEXT} übergibt natürlich kein ' sondern &#39;
                Wenn ich nun die Zeichen ersetzen lasse funktioniert es

                Ich fürchte aber: nur in diesem speziellen Fall mit den Hochkommata. Das PHP-Skript für's Forum wandelt sicher Sonderzeichen in entsprechende Entities um. Beim nächsten Zeichen, das ein User eingibt, hast Du wieder den Salat...

                Viele Grüße aus Frankfurt/Main,
                Patrick

                --

                _ - jenseits vom delirium - _
                [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                Nichts ist unmöglich? Doch!
                Heute schon gegökt?
            3. Man-o'-War [...] eine Karte aus einem Sammelkartenspiel

              Pfui Deibel, wofür die „Kings of Metal“ so alles herhalten müssen. In diesem Sinne „Death to False metal!“!!1elf

              Siechfred

              --
              Hinter den Kulissen passiert viel mehr, als man denkt, aber meistens nicht das, was man denkt.
              1. Hallo Siechfred,

                Man-o'-War [...] eine Karte aus einem Sammelkartenspiel
                Pfui Deibel, wofür die „Kings of Metal“ so alles herhalten müssen. In diesem Sinne „Death to False metal!“!!1elf

                dort fehlt natürlich das Bild, aber ich vermute dass es sich um einen echten
                man of war handeln soll, Herrscher der Meere - und eher aus (Eichen-) Holz
                als aus Metall [1]:-)

                Militante Grüße

                Vinzenz

                [1] ein paar Tonnen Metall, z.B. ein Kupferbeschlag unter der Wasserlinie,
                    gehören natürlich auch dazu :-)

                1. dort fehlt natürlich das Bild, aber ich vermute dass es sich um einen echten
                  man of war handeln soll

                  Pah, Kinderkram!

                  Herrscher der Meere - und eher aus (Eichen-) Holz als aus Metall [1]:-)

                  Pah, Kinderkram!

                  Siech*Defender of True Bloedsinn*fred

                  --
                  Hinter den Kulissen passiert viel mehr, als man denkt, aber meistens nicht das, was man denkt.