从URL参数中删除%20

时间:2013-02-27 00:43:30

标签: javascript

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

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

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

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

var markname = getUrlVars()["mname"];

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

value = decodeURIComponent(value);

或类似的......

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

3 个答案:

答案 0 :(得分:5)

您发布的

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;
}

答案 1 :(得分:1)

当您通过url使用时 str_replace(" ","-",$name) 并通过解码 str_replace("-"," ",$p->property_name)

它将删除空间并在网址中添加-

答案 2 :(得分:0)

只需这样做("your string here").replaceAll(" ", "-")