Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
104
rated 0 times [  110] [ 6]  / answers: 1 / hits: 21974  / 12 Years ago, wed, february 27, 2013, 12:00:00

I know you need to use some variant of decodeURIComponent() to do something like this, but since I'm still fairly new to coding and using some code I found on the net for my purposes, I'm not sure how to go about changing it to suit my needs.



What I have is a function that gets each URL parameter I need out of the URL (of which there are many). I have to use these variables for other functions as parameters and also to display on the page, and I can't get the %20's to disappear.



function getUrlVars() {
var vars = {};
parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}


Where I get each variable using:



var markname = getUrlVars()[mname];


I've tried to put decodeURIComponent() in different places in that function, but I can't seem to get it to work. I'm also not sure if it needs to use value or vars.



value = decodeURIComponent(value);


Or something like that...



Any help would be appreciated! Thanks!


More From » javascript

 Answers
1

decodeURIComponent as you posted should work fine. You might as well replace plus signs with spaces, and don't forget to decode the key as well:



function getUrlVars() {
var url = window.location.href,
vars = {};
url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m, key, value) {
key = decodeURIComponent(key);
value = decodeURIComponent(value);
vars[key] = value;
});
return vars;
}

[#79978] Tuesday, February 26, 2013, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
braidenv

Total Points: 80
Total Questions: 104
Total Answers: 91

Location: Peru
Member since Fri, Oct 14, 2022
2 Years ago
;