从URL参数中删除%20

Mat*_*man 5 javascript

我知道你需要使用decodeURIComponent()的一些变体来做这样的事情,但是因为我仍然相当新的编码和使用我在网上找到的一些代码用于我的目的,我不知道该如何去做改变它以满足我的需要.

我所拥有的是一个函数,它从URL中获取我需要的每个URL参数(其中有很多).我必须将这些变量用作其他函数作为参数,并在页面上显示,我不能让%20消失.

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

我使用以下方法获取每个变量:

var markname = getUrlVars()["mname"];
Run Code Online (Sandbox Code Playgroud)

我试图将decodeURIComponent()放在该函数的不同位置,但我似乎无法让它工作.我也不确定它是否需要使用价值或变量.

value = decodeURIComponent(value);
Run Code Online (Sandbox Code Playgroud)

或类似的东西...

任何帮助,将不胜感激!谢谢!

Ber*_*rgi 6

decodeURIComponent你发布的应该工作正常.您也可以用空格替换加号,并且不要忘记解码key:

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;
}
Run Code Online (Sandbox Code Playgroud)