2013-04-07 7 views
10

で配列の値をクエリ文字列を取得:私はJavaScriptを使用して配列の値「こんにちは」と「世界」を取得しようとしている私はgetメソッドを使用して、配列を含むフォーム持っているJavascriptの

http://www.example.com?name[]=hello&name[]=world

をかjQuery。

スタックオーバーフロー(例:How can I get query string values in JavaScript?)で同様の解決策を検討しましたが、配列ではなくパラメータのみを処理するようです。

アレイ値を取得することはできますか?そこ

+1

あなたにより示唆されるようにPARMSが繰り返されない限り、あなたが投稿リンクで回答http://stackoverflow.com/a/3855394/295783は、あまりにもあなたのケースで動作します配列と[]の使用について言及してください – mplungjan

+1

URLには* arrays *の概念がありません。あなたが持っているのは、同じ名前の複数のパラメータだけです。 '[]'は通常、PHPサーバで使用され、PHPサーバはこれらのパラメータから配列を作成します。他の言語(例えばPython)では、同じ名前の(そして '[]'なしの)複数のパラメータをうまく処理できます。 –

+2

リンク先の質問から、この回答が参考になる場合があります。http://stackoverflow.com/a/9362596/218196 –

答えて

11

あなたが行く:http://jsfiddle.net/mm6Bt/1/

function getURLParam(key,target){ 
    var values = []; 
    if (!target) target = location.href; 

    key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); 

    var pattern = key + '=([^&#]+)'; 
    var o_reg = new RegExp(pattern,'ig'); 
    while (true){ 
     var matches = o_reg.exec(target); 
     if (matches && matches[1]){ 
      values.push(matches[1]); 
     } else { 
      break; 
     } 
    } 

    if (!values.length){ 
     return null; 
    } else { 
     return values.length == 1 ? values[0] : values; 
    } 
} 

var str = 'http://www.example.com?name[]=hello&name[]=world&var1=stam'; 

console.log(getURLParam('name[]',str)); 
console.log(getURLParam('var1',str)); 
+0

ありがとう、アディディ。パーフェクトです! :) – iltdev

+0

あなたは大歓迎です^^ – Adidi

+0

多くの苦労の末、配列であれば名前に[]を付ける必要があることが分かりました!今明らかになっていますが、何とか私はそれに気づくのに1時間を無駄にしました。 –

関連する問題