Anstelle von .substr()
können Sie auch .slice()
oder .substring()
. Sie werden alle das gleiche Ergebnis in dieser Situation produzieren.
BEARBEITEN: Es scheint, als ob sich die Anforderungen der Frage in einem Kommentar unter einer anderen Antwort geändert haben.
Wenn möglicherweise nicht ist ein http://
in der Zeichenfolge, dann tun Sie dies:
Diese Antwort erweitert einige der obigen Antworten, http://
, https://
, oder //
, was ebenfalls üblich ist.
Danke für die obigen Antworten, die mich dazu geführt haben!
%Vor%Hier ist ein Link zu einem Codepen .
Wenn Sie keine anderen doppelten Schrägstriche als das Protokoll verwenden, können Sie Folgendes tun:
%Vor%Sie können HTMLHyperlinkElementUtils von DOM verwenden:
%Vor%Von HTMLHyperlinkElementUtils auf MDN :
a.hostname
, beispiel.com
a.host
, beispiel.com:3000
a.pathname
, / foo / bar .html
a.search
, ? a = 1 & amp; b = 2
a.hash
, #goo
a.username
, a.password
, a.port
, usw.
Bitte beachten Sie, dass in echten Webseiten geerbtes Protokoll //
eine gängige Praxis ist Ссылка .
Also schlage ich vor, dass regexp auch diesen Fall abdeckt:
/^\/\/|^https?:\/\//
(Sie können es optimieren)
Sie können den URL () -Konstruktor verwenden. Es wird Ihre URL-Zeichenfolge analysieren und es wird einen Eintrag ohne Protokoll geben. Also weniger Kopfschmerzen mit Regexps:
%Vor% Obwohl URL()
ein Protokoll auslässt, bleibt www
part übrig. In meinem Fall wollte ich auch diesen Subdomain-Teil loswerden, musste also trotzdem auf .replace()
zurückgreifen.
Tags und Links javascript