2009-09-01 4 views
7

JavaScriptでURLパラメータを解析するにはどうすればよいですか? (これらは通常GETパラメータまたはCGIパラメータと呼ばれるパラメータですが、この場合はページは基本的にサーバではなく、GETリクエストはなく、CGIプログラムはありません)。URLパラメータの解析にはどのJavaScriptライブラリを使用しますか?

I '私がコピーできるネット上のルーチンの数を見たが、どれがどれほど堅牢であるかわからない。私はPerlやJavaのような他の言語に慣れています。ここでは、標準で数百万の小さなエッジケースを処理することがわかっている非常によくテストされた堅牢なライブラリに依存することができます。例を切り取って貼り付けるのではなく、ここで同じことをしたいと思います。

+0

あなたは、単純なGETデータと期待しているどのように多くの「エッジ・ケース」! –

+1

ジョシュのようなスキップは、何百万という小さなものを言います。 –

答えて

1

ここのは、仕事をする2つの単純な機能です。ここでhttp://adamv.com/dev/javascript/querystring

は、APIリファレンスのサンプルです:

var qs = new Querystring(); 

// Parse a given querystring 
var qs2 = new Querystring("name1=value1&name2=value2"); 

var v1 = qs2.get("name1"); 
var v3 = qs2.get("name3", "default value"); 
+0

ありがとうございます。それは軽量でありながら最小限でしたが、私が望んでいたもの、つまりコピーする例ではなくライブラリです。私はJQueryを使いたいと思っていましたが、今日はそれをすべて把握できなかったので、別の時間を待たなければなりません。 – skiphoppy

+0

jQueryの代わりにこれらを投稿した理由は、単純なタスクを管理するためのフレームワーク全体が必要ないからです。 –

+1

はい、今日、フレームワーク全体に頼る必要はありません。 – skiphoppy

7
+1

私はこのルートに行きたいと思っていましたが、今日は勉強して働くことが大変でした。十分な能力を持ち、jQueryフレームワークのオーバーヘッドを処理できる人にとっては、私が好む回答です。 – skiphoppy

+1

"jQuery URLパーサー"リンクが壊れています。 –

1

それはあなたがパラメータをGET何をする必要があります「それ自体に提出する」なら?

しかし、あなたがしなければ、ほとんどのブラウザは現在、個々のパラメータを処理するdecodeURIComponent機能を持っています。あなたの仕事は、&に分割することです(String#splitでうまくいくでしょう)。ライブラリが必要な場合、jQueryとPrototypeはよく使用され、テストされています。

1

私が見つけた最も良い方法は、自分でやり、パラムをグローバルなキー/値オブジェクトに入れることです。 QUERはparamsは取得

は「(

はちょうどあなたが

myparams = myquery.splitを行うことができます.splitのカップル()さん

var myquery = thewholeurl.split("?")[1]; //will get the whole querystring with the ? 

を取る...簡単です&「)

、あなたは

for each param in myparams 
{ 
temp = param.split("="); 

mykeys.push(temp[0]); 
myvalues.push(temp[1]); 

OR 

myObject[temp[0]] = temp[1]; 
} 
を行うことができます

これは単なるスタイルの問題です。

これは完璧なコードではなく、ちょうどあなたのアイデアを与えるために偽のものです。

+0

です。これを行うには、 'decodeURIComponent'でキーと値の両方を実行する必要があります。 –

+0

ライブラリを使用していないため、すでに1つのバグがあります。 :) – skiphoppy

-1

JavascriptにはURLパラメータのサポートが組み込まれていません。

とにかく、location.searchプロパティが(「?」)疑問符から始まる、現在のページのURLの部分を返します。このことから

、独自のパラメータパーサーを書くことができます。また、そのようなjQueryと似たようなほとんどの一般的なJavaScriptフレームワークで利用可能なものの一つを利用することができます。

0

私はあなたが別の利点は、それがかなりよく文書化されていることで、jQueryを使ってか、YAHOOや道場でそれを使用することができますので、それは独立しており、このライブラリは非常によく働くだろうと思います。

http://www.openjsan.org/doc/t/th/theory/HTTP/Query/0.03/lib/HTTP/Query.html 

この場合、HTTP.Queryを使用してすべての作業を行うことができます。それは1のようなものです。2 KB圧縮されているので、必要に応じて大きなライブラリにインクルードすることもできます。 http://stevenlevithan.com/demo/parseuri/js/

それはあなたが正確に行うことができますあなたが求めているもの:私は今のところしばらくして避難所のためにそれを使用してきた

var uri = 'http://google.com/?q=stackoverflow'; 
var q = uri.queryKey['q']; 
// q = 'stackoverflow' 

1

は、私がここにありparseUriライブラリを使用します何の問題もなかった。

1

私は(新しいクエリのparamsの追加など)のURLを変更し、シンプルなURL解析のために、これは有用であることが分かっ:https://github.com/derek-watson/jsUri

+0

jsUriのブラウザの互換性はどのようになっていますか? – tkr

関連する問題