6

我知道你需要使用 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 或 vars。

value = decodeURIComponent(value);

或类似的东西...

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

4

3 回答 3

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;
}
于 2013-02-27T01:02:24.203 回答
1

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

它将删除空格并在 url 中添加 -

于 2018-07-25T09:45:20.033 回答
0

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

于 2021-07-18T21:36:13.887 回答