2016-05-02 15 views
0

JavascriptでURLの深さ(レベル)を取得できますか?JavaScriptのURLの深さ(レベル)

私はこのURLがある場合: www.website.com/site/product/category/itemを - >深さ= 4 www.website.com/site/product/category - >深さ= 3

+0

もちろん、簡単に行うことができます。何を試しましたか? – Aaron

+0

スラッシュを含むURLスラッグ/フラグメントをどのように処理したいと考えましたか?例: 'www.navitua.com/users?role = admin/root' – Lix

答えて

3

単純に「/」でそれを分割し、私は1つの以上の文字が続くスラッシュのためにそこにあるどのように多くの試合を決定するために正規表現を使用することになり、アレイ

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

を返すの長さを確認してください。

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

編集:は、クエリ文字列とダブルスラッシュに対するいくつかのチェックを追加しました。 (アイデアを誘発するためのユーザLixへのクレジット)

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

私の膝の反動反応は、他の回答で述べたように' split'を使うことでしたが、このアプローチははるかに優れています。 – Lix

+1

@Lix分割は、他のコメントで言及したように、クエリ文字列やハッシュのスラッシュを考慮している場合に特に適しています。そのアプローチで注意する唯一のことは、後続のスラッシュの文字列をトリムする必要があることです。 「スプリット」はOPにとってより良いアプローチかもしれない。 –

+0

私はあなたのコードを使用し、それは働いた。ありがとう。 – Navitua

関連する問題