Pot.js と PotLite.js で利用可能。
クエリ文字列 queryString を配列またはオブジェクトにデコードして返します。
serializeToQueryString で作成できるクエリ文字列 queryString を、
2 つのアイテムを持つ配列からなる配列にして返します。
引数 toObject が 真 (true) として渡されると、
キーバリューのペアでなるオブジェクトとして返します。
各値とキーは、Pot.urlDecode() によってデコードされます。
Pot.globalize() が適応されている場合、Pot.parseFromQueryString() が parseFromQueryString() で実行できます。
クエリ文字列からデコードされた配列 (items 形式) が返ります。
toObject が true の場合、オブジェクトで返ります。
// デフォルトは配列 (items 形式) です var query = 'foo=1&bar=bar2&baz='; Pot.debug(Pot.parseFromQueryString(query)); // => [['foo', '1'], ['bar', 'bar2'], ['baz', '']]
// 第二引数 toObject を true で渡した場合はオブジェクトになります。 var query = 'key1=value1&key2=value2'; Pot.debug(Pot.parseFromQueryString(query, true)); // => {key1: 'value1', key2: 'value2'}
// 次のような for-in などの動作に影響する未知の名前の可能性がある場合は、 // 配列で扱うと確実です。 var query = 'prototype=value1&__iterator__=value2'; Pot.debug(Pot.parseFromQueryString(query)); // => [['prototype', 'value1'], ['__iterator__', 'value2']]
// キーなしの場合 var query = 'http%3A%2F%2Fwww.example.com%2F'; Pot.debug(Pot.parseFromQueryString(query)); // => [['', 'http://www.example.com/']]
var query = '%40A=16%5E2%262&%40B=(2%2B3%3E%3D1)'; Pot.debug(Pot.parseFromQueryString(query, true)); // => {'@A': '16^2&2', '@B': '(2+3>=1)'}
var query = 'foo=bar&baz[]=qux&baz[]=quux&corge='; Pot.debug(Pot.parseFromQueryString(query, true)); // => {foo: 'bar', baz: ['qux', 'quux'], corge: ''}