prob bei http:// mit replace
wolli
- javascript
0 NorbertKlein0 wolli
hallo Leute,
vom FTPschock einigermassen erholt :-)
hab schon wieder ein kleines prob.
laut münz kann man mit replace:
var vormals = "Elke Hinz";
var jetzt = vormals.replace(/Hinz/,"Kunz, geb. Hinz");
Zeichen/Wörter ersetzen.
habe folgende Probematik:
lese mit document.URL die komplette URL Zeile aus.
also zB. http://www.wolfgag-mueller.de/
diese kann mit www. oder ohne www. vorkommen.
Jetzt würde ich gerne mit replace http:// und www. und am Ende den /
entfernen.
mit normalen Zeichen klappt das ja, aber bei / oder // gibts ne Fehlermeldung.
hat jemand eine Idee ??
Danke
Gruß
wolli
<script type="text/javascript" language="JavaScript">
<!--
url = document.URL;
url = url.replace(/http:///,"");
url = url.replace(///,"");
document.write(url);
//-->
</script>
oder
<script type="text/javascript" language="JavaScript">
<!--
url = document.hostname;
document.write(url);
//-->
</script>
Erklärung:
Du musst je einen Backslash() vor die Slashes(/) machen, da Slashes u.a. zur Syntax der regulären Ausdrücke gehören, der Browser meint, dass er, wenn du:
url = url.replace(/http:///,"");
angibst, "http:" ersetzen soll. Die zwei restlichen Slashes passen ihm dann nicht, darum die Fehlermeldung.
Setzt du vor den zwei in der Zeichenkette enthaltenen Slashes jeweils einen Backslash:
url = url.replace(/http:///,"");
werden die Slashes zur Zeichenkette hinzugezählt.
Bei url = url.replace(///,""); solltest du aber aufpassen, dass keine URLs mit Unterverzeichnissen auftauchen, die werden sonst nämlich unbrauchbar gemacht:
"http://selfhtml.teamone.de/javascript/objekte/" -> "selfhtml.teamone.dejavascriptobjekte"
Um das zu vermeiden, kannst du eigentlich gleich document.hostname verwenden (hätte mir auch früher einfallen können).
Weiterführend:
document.hostname -
http://selfhtml.teamone.de/javascript/objekte/location.htm#hostname
Syntax der regulären Ausdrücke - http://selfhtml.teamone.de/javascript/objekte/regexp.htm
Steuerzeichen bei Zeichenketten -
http://selfhtml.teamone.de/javascript/sprache/notationen.htm#zeichenketten
Gruß
Norbert
Dankeschön Norbert,
funz einwandfrei :-)
Gruß
Wolli
<script type="text/javascript" language="JavaScript">
<!--
url = document.URL;
url = url.replace(/http:///,"");
url = url.replace(///,"");
document.write(url);
//-->
</script>
oder
<script type="text/javascript" language="JavaScript">
<!--
url = document.hostname;
document.write(url);
//-->
</script>
Erklärung:
Du musst je einen Backslash() vor die Slashes(/) machen, da Slashes u.a. zur Syntax der regulären Ausdrücke gehören, der Browser meint, dass er, wenn du:
url = url.replace(/http:///,"");
angibst, "http:" ersetzen soll. Die zwei restlichen Slashes passen ihm dann nicht, darum die Fehlermeldung.
Setzt du vor den zwei in der Zeichenkette enthaltenen Slashes jeweils einen Backslash:
url = url.replace(/http:///,"");
werden die Slashes zur Zeichenkette hinzugezählt.
Bei url = url.replace(///,""); solltest du aber aufpassen, dass keine URLs mit Unterverzeichnissen auftauchen, die werden sonst nämlich unbrauchbar gemacht:
"http://selfhtml.teamone.de/javascript/objekte/" -> "selfhtml.teamone.dejavascriptobjekte"
Um das zu vermeiden, kannst du eigentlich gleich document.hostname verwenden (hätte mir auch früher einfallen können).
Weiterführend:
document.hostname -
http://selfhtml.teamone.de/javascript/objekte/location.htm#hostname
Syntax der regulären Ausdrücke - http://selfhtml.teamone.de/javascript/objekte/regexp.htm
Steuerzeichen bei Zeichenketten -
http://selfhtml.teamone.de/javascript/sprache/notationen.htm#zeichenketten
Gruß
Norbert