JavaScript Отримати параметри GET запиту

Подумаємо, що в результаті хотілося б мати? Я думаю, що було б зручно, якби GET запит представився нам об'єктом, що містить властивості з іменами як у властивостей GET запиту, так і з відповідними значеннями.

Наприклад, маємо такий запит: xxxxx.xx/xxx.html?aaa=111&bbb=foo&ccc=bar

Хотілося б мати такий об'єкт:

Що б використовувати так:

Зручно, правда? Хочете? - Забирайте:

Багато хто може заперечити, мовляв "фуу. регулярки - вони гальмові." - маєте право, можна використовувати реалізацію без регулярок:

У другому прикладі складність алгоритму більша, за рахунок додаткових перевірок if() < . >. У першому випадку вони просто не потрібні.

І до речі, функція з використанням регулярки не набагато повільніша, а, скажімо, у Google Chrome вона навіть швидше, та й у Opera швидкість однакова. Поступається вона за швидкістю лише в Firefox і в ранніх IE, але вона більш стійка ніж другий варіант.

Наприклад, візьмемо ситуацію, коли GET запит має не коректний формат (1 рядок це результат функції з регулюванням, 2 - результат функції без регулювання. Тестувалося в Google Chrome):

У принципі з цим можна жити, але, як видно, функція з регуляркою відпрацьовує коректніше. А якщо доводити до розуму другий варіант функції - то її складність зросте і як наслідок втратиться перевага швидкості виконання, так що вибирайте.