关于JavaScript的:用+替换了URL中的%20

Replaced %20 in URL with a +

我想知道当我单击按钮将文本框值添加到URL时是否可以将%20替换为A+。

1
2
3
4
5
6
7
$(function () {
    $('#btn').click(function() {
        var url ="www.urlname.com/results.html?value=";
        url += $('#textbox').val();
        window.location = url;
    });
});

谢谢


我还没有测试过,但这个应该可以用。要替换值中的空格。此时它们不会被编码到实体中。

1
2
3
4
5
6
7
8
9
$(function () {
    $('#btn').click(function() {
        var url ="www.urlname.com/results.html?value=";
        var textboxValue = $('#textbox').val();
        textboxValue = textboxValue.replace(/ /g,"+");
        url += textboxValue;
        window.location = url;
    });
});


是的,所有事件都有regex $('#textbox').val().replace(/%20/g, '+');


动态创建URL参数时,不应使用特殊替换对其进行编码。javascript提供了encodeURIComponent函数来执行所有必需的编码。所以你应该写:

1
url += encodeURIComponent($('#textbox').val());

你试过这个吗?

1
2
3
4
5
6
7
$(function () {
    $('#btn').click(function() {
        var url ="www.urlname.com/results.html?value=";
        url += $('#textbox').val();
        window.location = url.replace(new RegExp(' ','g'),'+');
    });
});