首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在javascript中用<comma>替换%2C?

如何在javascript中用<comma>替换%2C?
EN

Stack Overflow用户
提问于 2012-02-06 01:59:43
回答 2查看 17.6K关注 0票数 11
代码语言:javascript
复制
 #&q=car&category=Car%20Audio%2CAccessories&brand=

我借用了上一个问题中的this函数,因此:

代码语言:javascript
复制
function insertParam(key, value)
{
key = escape(key); value = escape(value);

var kvp = document.location.hash.substr(1).split('&');

var i=kvp.length; var x; while(i--) 
{
    x = kvp[i].split('=');

    if (x[0]==key)
    {
            x[1] = value;
            kvp[i] = x.join('=');
            break;
    }
}

if(i<0) {kvp[kvp.length] = [key,value].join('=');}

//this will reload the page, it's likely better to store this until finished

document.location.hash = kvp.join('&'); 
}

我是这样使用它的:

代码语言:javascript
复制
    insertParam("category",xy);
    insertParam("brand",zy);

我的问题是它正在将逗号解码为%2C。我知道我可以处理服务器端的字符,但是我怎样才能用javascript让它看起来更漂亮呢?我的意思是用逗号替换%2c。

EN

回答 2

Stack Overflow用户

发布于 2012-02-06 03:52:05

我不知道为何在先前的答案中被划掉了,但答案是正确的。

代码语言:javascript
复制
alert(decodeURIComponent('%2C'));

因此,您将查询字符串拆分为元素,并按&符号进行拆分。然后通过= symbol拆分结果,并对名称和值应用decodeURIComponent。

ps:key = escape(key); value = escape(value);你不应该在这里使用转义(它在不同的浏览器上是不同的。我所说的“不同”指的是IE)。使用encodeURIComponent。

pps:because they either encode commas or don't encode &=??

代码语言:javascript
复制
alert(encodeURIComponent('&=,'));

输出%26%3D%2C

票数 14
EN

Stack Overflow用户

发布于 2014-06-11 23:34:09

这对我在包含逗号的URI上撤消encodeURIComponent()很有效:

代码语言:javascript
复制
.replace(/%2C/g,",")
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9151566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档