将URL中的%20替换为+。

最后发布: 2020-07-09


问题

我想知道是否可以将%20替换为+,每当我点击按钮将文本框的值添加到网址中时。

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

谢谢你

javascript jquery
回答

你试过这个吗?

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


回答

是的,对所有出现的URL都用了一个regex。$('#textbox').val().replace(/%20/g, '+');


回答

我没有测试过,但这个应该可以。你要替换值中的空格。它们在这一点上没有被编码到实体中。

$(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;
    });
});


回答

当你动态地创建URL参数时,你不应该使用特别的替换来编码它们。Javascript提供了 encodeURIComponent 函数来执行所有需要的编码。所以你应该写:

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