如何在JavaScript中用%20替换空格?

36

可能是重复问题:
jQuery / Javascript将锚链接中的空格替换为%20

我这样获取sParameter:

sParameter = document.getElementById('ddParameterType').value;

如果我得到的单词像"Test - Text"一样作为ddParameterType项目,则我会进行以下空格替换:

sParameter = document.getElementById('ddParameterType').value.replace(" ", "%20");

但它返回一个类似于%20Test - Text的值。
我需要像Test%20-%20Text这样的结果。


这是一个关于编程的内容:有个encodeURI函数:https://dev59.com/ZXRA5IYBdhLWcg3wtwWe#853872 - Thilo
很抱歉,我无法理解您需要对用户数据进行编码的原因。有人能帮助我理解一下吗? - shahkalpesh
4个回答

98
sParameter = encodeURIComponent(sParameter.trim()) //"Test%20-%20Text"

.trim 方法可以从字符串中删除前导和尾部空格,encodeURIComponent 用于对其进行 URL 编码。


此解决方案适用于IE和其他浏览器。谢谢。 - saber tabatabaee yazdi
2
encodeURIComponent()将http://更改为类似于http%3A%2F%2F的内容,并且在浏览器上不起作用。 - Sherin Binu
1
encodeURI是保留http://协议的首选方式。 - Calvin

20

4
这是正确的答案,但质量较差。正确的做法是使用encodeURIComponent()函数。 - codeepic
1
encodeURIComponent()将http://更改为类似http%3A%2F%2F的格式,但它在浏览器上无法正常工作。这比被接受的答案要好。 - Sherin Binu
是的,我正在使用Google自定义搜索和Encode URI组件,这导致API调用无法正常工作。 - Anshuman Kumar

10
 sParameter = encodeURIComponent(sParameter.trim())

请注意,这个函数不仅仅是用来处理空格的... https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent 但这也许是一件好事。 - phyatt

5
请使用以下内容替换所有出现的内容:
document.getElementById('ddParameterType').value.replace(/ /g, "%20");

或者更好的方式是:

点击这里
encodeURIComponent(document.getElementById('ddParameterType').value);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接