wolli: prob bei http:// mit replace

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

  1. <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

    1. 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