Description de la méthode:
Cette méthode permet de remplacer QuerryString.Parse
grammaire:
La copie de code est la suivante:
Querystring.UNESCAPE
Recevoir des paramètres:
aucun
Code source:
La copie de code est la suivante:
// une alternative rapide sûre au décodéruation
Queystring.unescapeBuffer = fonction (s, décodespaces) {
var out = nouveau tampon (s.length);
var state = 'char'; // déclare: Char, Hex0, Hex1
var n, m, hexchar;
pour (var inindex = 0, outindex = 0; inindex <= s.length; inindex ++) {
var c = s.Charcodeat (inIndex);
commutateur (état) {
cas «char»:
commutateur (c) {
Case charcode ('%'):
n = 0;
M = 0;
state = 'hex0';
casser;
case charcode ('+'):
if (DecodeSpaces) c = charcode ('');
// passe à travers
défaut:
out [OutIndex ++] = C;
casser;
}
casser;
cas «hex0»:
state = 'hex1';
hexchar = c;
if (charcode ('0') <= c && c <= charcode ('9')) {
n = c - charcode ('0');
} else if (charcode ('a') <= c && c <= charcode ('f')) {
n = c - charcode ('a') + 10;
} else if (charcode ('a') <= c && c <= charcode ('f')) {
n = c - charcode ('a') + 10;
} autre {
out [OutIndex ++] = charcode ('%');
out [OutIndex ++] = C;
state = 'char';
casser;
}
casser;
cas «hex1»:
state = 'char';
if (charcode ('0') <= c && c <= charcode ('9')) {
m = c - charcode ('0');
} else if (charcode ('a') <= c && c <= charcode ('f')) {
m = c - charcode ('a') + 10;
} else if (charcode ('a') <= c && c <= charcode ('f')) {
m = c - charcode ('a') + 10;
} autre {
out [OutIndex ++] = charcode ('%');
out [OutIndex ++] = hexchar;
out [OutIndex ++] = C;
casser;
}
out [outindex ++] = 16 * n + m;
casser;
}
}
// Prise en charge des tampons arbitraires de retour.
return out.slice (0, outindex - 1);
};