web-dev-qa-db-ja.com

jquery-URLパスを取得しますか?

Window.location.pathnameを使用してURLを返すことができることはわかっていますが、URLを解析するにはどうすればよいですか?

私は次のようなURLを持っています: http:// localhost/messages/mine/9889 そして、「mine」が存在するかどうかを確認しようとしていますそのURLに?

したがって、「私の」がそのURLの2番目の部分である場合、それに基づいてifステートメントを記述したいと思います...

if(second argument == 'mine') { do something }
19
KittyYoung
if ( location.pathname.split("/")[2] == "mine" ) { do something }

明らかに、splitによって返される配列に十分なアイテムがあるかどうかを確認する方が良いでしょう。

var a = location.pathname.split("/");
if ( a.length > 2 && a[2] == "mine" ) { do something }

配列インデックスはゼロベースですが、splitが「/ messages/mine/9889」を4つのアイテムの配列に分割するため、2番目の引数として参照するものを取得するために、インデックスとして2を指定することに注意してください。

["", "messages", "mine", "9889"]
44
Mario Menger

jqueryがオプションの場合、次のことを実行できます。

$.inArray("mine", window.location.pathname.split("/"))
8
derek
if (window.location.pathname.split("/")[2] == "mine") {
  // it exists
};

window.location.pathnameは1日の終わりの文字列なので、通常の 文字列メソッド が適用されます。

5
Matt

これは非常に古いクエリですが、いくつかの検索でポップアップします。ここにメモを追加します。

url.indexOf('mine') !== -1 

上記は、URLに文字列があるかどうかを確認するために使用する必要があります...パスを見つけるには、使用する方が良いでしょう。

var a = document.createElement('a');
a.href = url;
console.log(a.pathname);
// if url='http://localhost/messages/mine/9889'
// output will be /messages/mine/9889

これが時間を節約することを願っています

1

String.split( '/')関数を使用して、チェックするアイテムの配列を作成できます。それ以外の場合、URLを解析するいくつかのjQueryプラグインがあります。

http://projects.allmarkedup.com/jquery_url_parser/

0
James Westgate