Descripción del método:
Convierte una cadena en un objeto. Para decirlo sin rodeos, en realidad está convirtiendo la cadena de parámetros en la URL en un objeto de matriz. (Se nota mirando los ejemplos)
gramática:
La copia del código es la siguiente:
QueryString.Parse (str, [sep], [eq], [opciones])
Recibir parámetros:
stri
SEP establece el separador, el valor predeterminado es '&'
EQ establece el carácter de asignación, el valor predeterminado es '='
[Opciones] Maxkeys La longitud máxima de una cadena que se puede aceptar, el valor predeterminado es 1000
ejemplo:
La copia del código es la siguiente:
QueryString.Parse ('foo = bar & baz = qux & baz = quux & Corge')
// Devuelve
{foo: 'bar', baz: ['qux', 'quux'], Corge: ''}
Código fuente:
La copia del código es la siguiente:
// analizar una clave = Val String.
QueryString.Parse = QueryString.Decode = function (QS, SEP, EQ, Opciones) {
SEP = SEP || '&';
eq = eq || '=';
var obj = {};
if (! util.isstring (qs) || qs.length === 0) {
regresar 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 no debemos limitar el recuento de claves
if (maxkeys> 0 && len> maxkeys) {
len = maxkeys;
}
para (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);
} demás {
kstr = x;
vstr = '';
}
intentar {
k = decodeuricomponent (kstr);
v = decodeuricomponent (VSTR);
} catch (e) {
k = QUERYTRING.UNESCAPE (KSTR, verdadero);
v = QueryString.unescape (VSTR, true);
}
if (! HasnownProperty (obj, k)) {
obj [k] = v;
} else if (util.isArray (obj [k])) {
obj [k] .push (v);
} demás {
obj [k] = [obj [k], v];
}
}
regresar obj;
};