Description de la méthode:
Convertit une chaîne en un objet. Pour le dire franchement, il convertit en fait la chaîne de paramètre sur l'URL dans un objet de tableau. (Vous pouvez le dire en regardant les exemples)
grammaire:
La copie de code est la suivante:
QueryString.Parse (Str, [Sep], [Eq], [Options])
Recevoir des paramètres:
Str
Sep définit le séparateur, la valeur par défaut est '&'
Eq définit le caractère d'affectation, la valeur par défaut est '='
[Options] Maxkeys La longueur maximale d'une chaîne qui peut être acceptée, la valeur par défaut est 1000
exemple:
La copie de code est la suivante:
queystring.parse ('foo = bar & baz = qux & baz = quux & Corge')
// retourne
{foo: 'bar', baz: ['qux', 'quux'], Corge: ''}
Code source:
La copie de code est la suivante:
// analyse une clé de clé = chaîne Val.
QueryString.Parse = QueryString.decode = fonction (QS, Sep, Eq, Options) {
Sep = Sep || '&';
Eq = Eq || '=';
var obj = {};
if (! util.issstring (qs) || qs.length === 0) {
retour 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 signifie que nous ne devons pas limiter le nombre de clés
if (maxkeys> 0 && len> maxkeys) {
len = maxkeys;
}
pour (var i = 0; i <len; ++ i) {
var x = qs [i] .replace (regexp, '% 20'),
idx = x.indexof (eq),
KSTR, VSTR, K, V;
if (idx> = 0) {
kstr = x.substr (0, idx);
vstr = x.substr (idx + 1);
} autre {
kstr = x;
vstr = '';
}
essayer {
k = decodeuriComponent (KSTR);
v = decodeuriComponent (VSTR);
} catch (e) {
k = querystring.unescape (kstr, true);
v = queystrstring.unescape (vstr, true);
}
if (! Hasownproperty (obj, k)) {
obj [k] = v;
} else if (util.isArray (obj [k])) {
obj [k] .push (v);
} autre {
obj [k] = [obj [k], v];
}
}
retour obj;
};