Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. readInput();
  2.  
  3. function readInput() {
  4.     var input = [
  5.         'foo=%20foo&value=+val&foo+=5+%20+20323+++++232%20%20 34-443',
  6.         'foo=poo%20&asdsadsa===?value=valley&%20dog pesho=+++%20%20wow+%20%20&pesho=+++%20%20wow+%20%20',
  7.         'url=https://softuni.bg/trainings/coursesinstances/details/1070',
  8.         'https://softuni.bg/trainings?nakov=nakov&course=oop&course=php'
  9.     ];
  10.  
  11.     solve(input);
  12. }
  13.  
  14. function solve(input) {
  15.     for (var index = 0; index < input.length; index++) {
  16.  
  17.         var elements = input[index].split(/[\&]+/);
  18.         elements = elements.filter(function (e) { return e || e === 0 });
  19.  
  20.         var currentElements = {};
  21.  
  22.         for (var pair = 0; pair < elements.length; pair++) {
  23.             elements[pair] = elements[pair].split(/[?]+/);
  24.             if (elements[pair].length > 1) {
  25.                 elements[pair].splice(0, 1);
  26.             }
  27.  
  28.             elements[pair] = elements[pair][0];
  29.  
  30.             var pairValues = elements[pair].split(/[\+\=]+|%20/);
  31.             pairValues = pairValues.filter(function (e) { return e || e === 0 });
  32.  
  33.             pairValues[0] = pairValues[0].trim();
  34.  
  35.             if (currentElements[pairValues[0]] == undefined) {
  36.                 currentElements[pairValues[0]] = [];
  37.             }
  38.  
  39.             var values = "";
  40.             for (var value = 1; value < pairValues.length; value++) {
  41.                 if (currentElements[pairValues[0]].indexOf(pairValues[value].trim()) == -1) {
  42.                     if (pairValues[value] != pairValues[pairValues.length - 1]) {
  43.                         values += pairValues[value].trim() + " ";
  44.                     } else {
  45.                         values += pairValues[value].trim();
  46.                     }
  47.                 }
  48.             }
  49.  
  50.             currentElements[pairValues[0]].push(values);
  51.         }
  52.  
  53.         var output = "";
  54.         for (var key in currentElements) {
  55.                 output += "" + key + "=[";
  56.                 output += currentElements[key].join(', ');
  57.                 output += "]"
  58.         }
  59.  
  60.         console.log(output);
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement