gpt4 book ai didi

Javascript encodeURIComponent() 不编码空格

转载 作者:技术小花猫 更新时间:2023-10-29 12:27:12 24 4
gpt4 key购买 nike

我有一个带有文本输入的表单,其 ID 为 txtPlace,用户将在其中输入内容,并将作为 url 查询传递给服务器。我正在尝试使用 encodeURIComponent(),但它不是编码空格。这是我的简化代码

<div class="searchBoxRow">
<input type="text" id="txtPlace" size="55" placeholder="Enter place to search"/>
<a href="#" id="btnSearch">Search</a>
</div>

这是我的javascript

<script type="text/javascript">
$(function () {
$('#btnSearch').on('click', function (e) {
e.preventDefault;
var place = encodeURIComponent($('#txtPlace').val());
var url = "http://example.com?place=" + place;
document.location.href = url;
});
});
</script>

如果用户输入 ACME Co.,New York, NY,生成的 url 是

http://example.com?place=ACME Co.%2CNew York%2C NY

看到空格未编码了吗?我什至尝试添加 place = place.replace(/\s/g, '+') 但编码后似乎不起作用。我究竟做错了什么?感谢您的帮助。

更新:

都怪 Firefox! 发现空格已正确编码,但 Firefox 并未显示已编码的空格,即使它们是编码的。在 Internet Explorer 10Google Chrome 中测试,它们都以编码格式显示空格。感谢亚当的 fiddle http://jsfiddle.net/VYDcv/

最佳答案

我不确定您看到的是什么,但是 encodeURIComponent 会转义空格字符。

根据您的代码查看此 fiddle :http://jsfiddle.net/VYDcv/

如果您输入“Hello world”,它会提醒您空格被替换为 %20

警报结果:http://example.com?place=Hello%20World

当您设置浏览器的 document.location.href 时,它可能会将 %20 改回地址栏中的空格,但它正在被转义javascript。

关于Javascript encodeURIComponent() 不编码空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16598382/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com