从JavaScript中剥离空格(%20)

从JavaScript中剥离空格(%20),javascript,Javascript,如何从以下代码中删除空格(%20) var newTab = {"url": config.searchEngines[newTabIndex].url.replace(new RegExp("%s", "g"), info.selectionText).replace(new RegExp("%S", "g"), info.selectionText)} selectionText是网页上突出显示的电话号码。显然,将20添加到数字中会导致数字不正确。只需删除空格,而不是替换为%20,除非它们

如何从以下代码中删除空格(
%20

var newTab = {"url": config.searchEngines[newTabIndex].url.replace(new RegExp("%s", "g"), info.selectionText).replace(new RegExp("%S", "g"), info.selectionText)}

selectionText
是网页上突出显示的电话号码。显然,将
20
添加到数字中会导致数字不正确。

只需删除空格,而不是替换为
%20
,除非它们是字符串的一部分或在
var

之后使用此选项即可

str=str.replace(/%20/g,"")
因此,对于您的代码

var newTab = {"url": config.searchEngines[newTabIndex].url.replace("%20", ""), info.selectionText).replace(/%20/g,""), info.selectionText)}

查看
decodeURIComponent()
函数


实际上,您可能想通过@PaulS传递字符串。将其传递给
decodeURI
可能更合适,因为它似乎是一个完整的URL。恐怕我不知道如何实现这一点。谢谢你的建议!文档是关于MDN的,在ES5规范中感谢您的参考,我最初确实看了这个,但是我的JS技能很差,我需要一些上下文方面的专家帮助:)谢谢,感谢您的代码建议,因为我的JS不存在。在测试时,很明显,替换(新RegExp(“%s”,“g”)和替换(新RegExp(“%s”,“g”)部分仍然是必需的,因为它会导致故障。请您建议如何使用您的建议添加到现有代码中,而不是替换部分代码。
var uri = config.searchEngines[newTabIndex].url,
    newTab = {"url": decodeURIComponent(uri)};