Descrição do método:
Converte uma string em um objeto. Para ser franco, está na verdade convertendo a sequência de parâmetro no URL em um objeto de matriz. (Você pode dizer olhando para os exemplos)
gramática:
A cópia do código é a seguinte:
querystring.parse (str, [set], [eq], [opções])
Receber parâmetros:
str
SEP define o separador, o padrão é '&'
EQ define o caractere de atribuição, o padrão é '='
[Opções] Maxkeys o comprimento máximo de uma corda que pode ser aceita, o padrão é 1000
exemplo:
A cópia do código é a seguinte:
querystring.parse ('foo = bar e baz = qux & baz = quux & corge')
// retorna
{foo: 'bar', baz: ['qux', 'quux'], corge: ''}
Código -fonte:
A cópia do código é a seguinte:
// Analisar uma chave = Val String.
Querystring.parse = querystring.decode = function (qs, set, eq, opções) {
SEP = SEP || '&';
Eq = Eq || '=';
var obj = {};
if (! util.isstring (qs) || qs.length === 0) {
retornar obj;
}
var regexp = //+/g;
qs = qs.split (SEP);
var maxkeys = 1000;
if (options && util.isnumber (options.maxkeys)) {
maxkeys = options.maxkeys;
}
var len = qs.length;
// maxkeys <= 0 significa que não devemos limitar as chaves
if (maxkeys> 0 && len> maxkeys) {
len = maxkeys;
}
for (var i = 0; i <len; ++ i) {
var x = qs [i] .place (regexp, '%20'),
idx = x.indexOf (eq),
Kstr, vstr, k, v;
if (idx> = 0) {
kstr = x.substr (0, idx);
vstr = x.substr (idx + 1);
} outro {
kstr = x;
vstr = '';
}
tentar {
k = decodeuricomponent (kstr);
v = decodeuricomponent (vstr);
} catch (e) {
k = querystring.unescape (kstr, verdadeiro);
v = querystring.unescape (vstr, true);
}
if (! HasOwnProperty (obj, k)) {
obj [k] = v;
} else if (util.isarray (obj [k])) {
obj [k] .push (v);
} outro {
obj [k] = [obj [k], v];
}
}
retornar obj;
};