13

get メソッドを使用し、配列を含むフォームがあります。

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

JavaScript または jQuery を使用して配列値 'hello' および 'world' を取得しようとしています。

Stack Overflow で同様のソリューションを見てきました (例: How can I get query string values in JavaScript? ) が、それらは配列ではなくパラメーターのみを処理するようです。

配列値を取得することは可能ですか?

4

1 に答える 1

15

どうぞ: 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));
于 2013-04-07T18:17:04.427 に答える