Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function queryCleaner(input) {
  2.  
  3.     var reg1 = /%20+/g;
  4.     var reg2 = /\+/g;
  5.  
  6.     for (var i = 0; i < input.length; i++) {
  7.         var queries = [];
  8.         var groups = input[i].split('&');
  9.         var key = '';
  10.         var value = '';
  11.         var out = '';
  12.  
  13.         function shrink2(prm) {
  14.  
  15.             var result = '';
  16.             prm = prm.replace(reg1, ' ');
  17.             prm = prm.replace(reg2, ' ');
  18.             prm = prm.trim();
  19.  
  20.             for (var l = 0; l < prm.length; l++) {
  21.  
  22.                 if (prm.charAt(l) == ' ' && prm.charAt(l - 1) == ' ') {
  23.                 }  else {
  24.                     result = result + prm.charAt(l);
  25.                 }
  26.             }
  27.             return result;
  28.         }
  29.  
  30.         for (var j = 0; j < groups.length; j++) {
  31.  
  32.             var k = groups[j];
  33.             key = k.substring(0, k.indexOf('='));
  34.  
  35.             if (key.indexOf('?') != -1) {
  36.                 key = key.substr(key.indexOf('?') + 1);
  37.             }
  38.  
  39.             key = key.trim();
  40.             key = shrink2(key);
  41.  
  42.             var v = k.substring(k.indexOf('=') + 1, k.length);
  43.             value = shrink2(v);
  44.  
  45.             if (!queries[key]) {
  46.                 queries[key] = {value: []};
  47.             }
  48.             queries[key].value.push(value);
  49.         }
  50.         var it = Object.keys(queries);
  51.  
  52.         for (var x in it) {
  53.             out += it[x] + '=[';
  54.             for (var y in queries[it[x]].value) {
  55.                 var xx = queries[it[x]].value[y].trim();
  56.                 out += xx;
  57.                 out += ', ';
  58.             }
  59.             out = out.substring(0, out.length - 2);
  60.             out += ']'
  61.         }
  62.         console.log(out);
  63.     }
  64. }
  65.  
  66.  
  67. queryCleaner(['https://www.google.bg/search?answer%20of%20everything++++=42&q=whitespace&oq=whitespace&aqs=chrome.0.0l6.1165j0j7&sourceid=chrome&es_sm=93&ie=UTF-8numbers=20&symbols=#%*^(^(',
  68.     'http://lotr.wikia.com/wiki/Elves?find=elf&elves=amarie%20%20%20%20nimrodel&elves=gil-galad+galadriel&mortal=harry%20potter&elven=legolas&mortal=he-who-must-not-be-named+&mortal=boromir&immortal=spirit&mortal=bilbo+beggins&evil=sauron&answer%20of%20everything++++=42']);
  69. //queryCleaner(['field=value1&field=value2&field=value3', 'http://example.com/over/there?name=ferret']);
  70. //queryCleaner(['http://forum.skynomad.net/viewforum.php?f=1&sid=%20++7f7451f77c442ed8eac4bcb321e4a6af&a=http://forum.skynomad.net/viewforum.php?'])
  71. /*queryCleaner(['foo=%20foo&value=+val&foo+=5%20%20+203',
  72.  'foo=poo%20&value=valley&dog=wow+',
  73.  'url=https://softuni.bg/trainings/coursesinstances/details/1070',
  74.  'https://softuni.bg/trainings.asp?trainer=nakov&course=oop&course=php']);*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement