http bei URL entfernen
Sandra
- javascript
0 Cheatah0 Singenjuian
Hallo,
ich habe ein Problem. Ich möchte gerne mittels Javascript eine url zerlegen bzw. möchte ich sämtliche https in der url rauslöschen.
Die url wird in ein Formular eingegeben und soll dann automatisch alle http löschen. Also wenn z.B. jemand aus versehen folgendes eingibt: http://http://www.bla.de soll die url auf www.bla.de gekürzt werden. Ich habe bis jetzt keinen Befehl gefunden, der mir die ganze url durchsucht und sämtliche https löscht. "replace" ersetzt ja nur das erste Zeichen das er findet...also das erste http.
Ich hoffe ihr könnt mir helfen.
Lg Sandra
Hi,
Also wenn z.B. jemand aus versehen folgendes eingibt: http://http://www.bla.de soll die url auf www.bla.de gekürzt werden.
Dir ist aber schon bewusst, dass es sich dann nicht mehr um eine URL handelt.
Ich habe bis jetzt keinen Befehl gefunden, der mir die ganze url durchsucht und sämtliche https löscht. "replace" ersetzt ja nur das erste Zeichen das er findet...also das erste http.
Nein, replace() ersetzt auch beliebig viele, wenn Du es sagst. Schaue Dir die Seiten zu RegExp genauer an.
Cheatah
Dir ist aber schon bewusst, dass es sich dann nicht mehr um eine URL handelt.
Ja natürlich :) aber es ist einfacher, wenn ich zuerst alle http rauskürze, dann eins dazufüge. So kann nix schief gehen
Nein, replace() ersetzt auch beliebig viele, wenn Du es sagst. Schaue Dir die Seiten zu RegExp genauer an.
hm, ok danke. dann kuck ich mal
Hi,
Ja natürlich :) aber es ist einfacher, wenn ich zuerst alle http rauskürze, dann eins dazufüge. So kann nix schief gehen
richtig :-)
Cheatah
Hi,
Ja natürlich :) aber es ist einfacher, wenn ich zuerst alle http rauskürze, dann eins dazufüge. So kann nix schief gehen
richtig :-)
Falsch.
http://www.example.org/httpstuff/ -> http://www.example.org/stuff/
Und falls http: oder http:// erst weggelöscht und dann einfach hinzugefügt wird:
https://www.example.org/ -> http://https://www.example.org
cu,
Andreas
Hi,
Ja natürlich :) aber es ist einfacher, wenn ich zuerst alle http rauskürze, dann eins dazufüge. So kann nix schief gehen
richtig :-)
Falsch.
nicht, wenn man "alle http" als "jedes Vorkommen der Zeichenkette 'http://'" interpretiert, wie es IMHO anhand der Beispiele schon im ersten Posting klar war.
https://www.example.org/ -> http://https://www.example.org
Ja, es gilt zu prüfen, ob dies ebenfalls von Relevanz ist.
Cheatah
Moin Moin !
https://www.example.org/ -> http://https://www.example.org
Ja, es gilt zu prüfen, ob dies ebenfalls von Relevanz ist.
Darf ich mal raten: Ein vorausgefülltes Textfeld à la SelfForum-Formular.
DAU hängt per Copy-and-Paste eine vollstänige URL an statt den Default-Wert zu überschreiben.
Also gibt es nur zwei Möglichkeiten:
Richtige URL oder richtige URL mit einem extra-"http://" vorangestellt.
Setzt man nun eine passende RE an, die einen Anchor benutzt, löst sich das von ganz alleine auf:
$url=~s|^(http://){0,2}||;
$url='http://'.$url:
Bleibt die Frage: Was ist mit FTP- und HTTPS-URLs?
Besserer Ansatz: kein Protokoll vorgeben und nachher die URLs ggf. à la Webbrowser reparieren:
URL beginnt mit "http://", "ftp://", "https://" => fertig
URL beginnt mit "ftp." => "ftp://" voranstellen, fertig
(weitere Feinheiten für Vertipper ...)
sonst => "http://" voranstellen, fertig.
Alexander
Hallo Alexander,
sonst => "http://" voranstellen, fertig.
vorher meinst Du, dass ich mit www.meinedomain.xy wirklich http://
meine? Eigentlich will ich doch zu gopher://www.meinedomain.xy/ ;-)
Viele Grüße,
Stefan
PS: War nur ein Spaß, finde Deine Vorgehensweise auch sinnvoll.
Also wenn z.B. jemand aus versehen folgendes eingibt: http://http://www.bla.de soll die url auf www.bla.de gekürzt werden.
Versuchs doch einfach mal substr(0,7) == "http://" in deine Funktion einzubauen, damit kannst du wenigstens testen ob ein http:// am Anfang des Strings steht. und den dann einfach abschneiden.
Ich habe bis jetzt keinen Befehl gefunden, der mir die ganze url durchsucht und sämtliche https löscht. "replace" ersetzt ja nur das erste Zeichen das er findet...also das erste http.
das müsste aber doch auch reichen, denn normalerweise gibt ja niemand das doppelte Protokoll ein. oder?
Hallo,
kannst Du Dich bitte bemühen, bei Antworten vernünftig zu zitieren?
Wäre wirklich nett, weil der Text, wenn Du wie eben geschehen sämt-
liche Hinweise auf Zitate löschst, sonst kaum noch verstehbar ist.
Viele Grüße,
Stefan
das müsste aber doch auch reichen, denn normalerweise gibt ja niemand das doppelte Protokoll ein. oder?
ansonsten kannst du einfach den erhaltenen String in eine neue Variable schreiben und dann die selbe prozedur nochmal. Oder du baust das ganze gleich in eine While schleife ein!