replace klappt nicht
Andreas
- javascript
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>
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.
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
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
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 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'-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
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 (') oder ein URL-maskiertes Hochkomma (%27)?
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hallo, hab die lösung.
{TEXT} übergibt natürlich kein ' sondern '
Wenn ich nun die Zeichen ersetzen lasse funktioniert es
Danke trotzdem für die Hilfe
viele Grüße aus Trebur
Andreas
Hallo Andreas!
{TEXT} übergibt natürlich kein ' sondern '
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
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
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 :-)
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