Метод Описание:
Этот метод позволяет переопределить QueryString.parse
Грамматика:
Кода -копия выглядит следующим образом:
QueryString.Unescape
Получить параметры:
никто
Исходный код:
Кода -копия выглядит следующим образом:
// безопасная быстра
QueryString.unescapeBuffer = function (s, decodespaces) {
var Out = новый буфер (S.Length);
var state = 'char'; // Государства: char, hex0, hex1
var n, m, hexchar;
for (var inIndex = 0, upindex = 0; inindex <= s.length; inindex ++) {
var c = s.charcodeat (inindex);
Switch (состояние) {
Дело 'char':
Switch (c) {
Case Charcode ('%'):
n = 0;
m = 0;
State = 'hex0';
перерыв;
case charcode ('+'):
if (decodespaces) c = charcode ('');
// пройти через
по умолчанию:
out [upendex ++] = c;
перерыв;
}
перерыв;
Дело '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;
} еще {
out [upendex ++] = charcode ('%');
out [upendex ++] = c;
state = 'char';
перерыв;
}
перерыв;
Дело '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;
} еще {
out [upendex ++] = charcode ('%');
out [supindex ++] = hexchar;
out [upendex ++] = c;
перерыв;
}
out [supindex ++] = 16 * n+m;
перерыв;
}
}
// TODO поддержка возврата произвольных буферов.
return Out.slice (0, upindex - 1);
};