2016-05-02 5 views
0

Ist es möglich, URL-Tiefe (Level) mit Javascript zu bekommen?Javascript URL Tiefe (Level)

Wenn ich diese URL haben: www.website.com/site/product/category/item -> Tiefe = 4 www.website.com/site/product/category -> Tiefe = 3

+0

Sicher kann es leicht getan werden. Was hast du probiert? – Aaron

+0

Haben Sie überlegt, wie Sie mit URL-Slugs/Fragmenten umgehen möchten, die auch Schrägstriche enthalten? Zum Beispiel: 'www.navitua.com/users? Role = admin/root' – Lix

Antwort

3

einfach spaltete es durch „/“ und überprüfen sie die Länge Array zurückzugeben

var url = "www.website.com/site/product/category/item"; 
 
    alert("depth is " + (url.split("/").length - 1)); 
 
    url = "www.website.com/site/product/category" 
 
    alert("depth is " + (url.split("/").length - 1));

4

ich einen regulären Ausdruck zu bestimmen, verwenden würde, wie viele Spiele gibt es für einen Schrägstrich sind von einem oder mehreren Zeichen.

var url = "www.website.com/site/product/category/item"; 
url.match(/\/.+?/g).length; // returns 4 

Edit: Added ein paar Kontrollen gegen Query-Strings und doppelte Schrägstriche. (Kredit an Benutzer Lix für die Funkenbildung der Idee)

var url = "www.website.com/site/product/category/item?url=/query/string/path"; 
url.split(/[?#]/).shift().match(/\/[^/]+?/g).length; 
+0

Mein Knieschmerz war,' Split' zu verwenden, wie in anderen Antworten erwähnt, aber wenn du erst nach der ** Anzahl von Schrägstrichen ** bist, dann Dieser Ansatz ist viel besser. – Lix

+1

@Lix Split ist ein guter Ansatz, besonders wenn Sie Schrägstriche in Abfragezeichenfolgen oder Hashes berücksichtigen, wie Sie in Ihrem anderen Kommentar erwähnt haben. Das einzige, was bei diesem Ansatz beachtet werden muss, ist die Notwendigkeit, die Folge von Schrägstrichen zu trimmen. 'Split' könnte der bessere Ansatz für OP sein. –

+0

Ich habe deinen Code benutzt und es hat funktioniert. Vielen Dank. – Navitua