如何使用jQuery替换查询字符串值?

时间:2013-06-27 09:03:08

标签: javascript jquery

我遇到问题,原始网址如下:

test.com/?manufacturer=0&body-style=0&min-price=270%2C000&max-price=780%2C000

如您所见,由于传递给URL的逗号,查询字符串中的最小价格和最大价格值不正确。它应该是各自的整数值,如min-price = 270000和max-price = 780000。

我需要使用jQuery转换min-max和max-price的查询字符串值。我目前不知道如何做到这一点。但我有代码从URL中获取它们,然后将它们转换为正确的值。我只是不知道如何使用jQuery将它们实现回URL(作为新URL)。这些是我现有的代码:

    //Function to get value of parameter in query string
    function getParameterByName(name) {
        name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
        var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
           results = regex.exec(location.search);
        return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

    //Function to remove commas and convert to number
    function convert_to_pure_number(x) {

    //Remove commas
    var x_withoutcommas=x.replace(/,/g,'');

    //Convert to plain number
    var y =parseInt( x_withoutcommas ,10);

            return y;
    }

    var min_price_original=getParameterByName('min-price');        
    var max_price_original=getParameterByName('max-price');        
    var min_price_converted=convert_to_pure_number(min_price_original);       
    var max_price_converted=convert_to_pure_number(max_price_original);

有任何建议如何继续使用附加代码上面的代码将它们放回发布的URL?谢谢你的帮助。

更新 这是一个过程: 表格将发布到服务器 - >网址将包含逗号 - >我的新代码将删除逗号 - >在查询字符串值中,将使用正确的值。

干杯。

1 个答案:

答案 0 :(得分:0)

使用这样的替换函数:

  function getParameterByName(name) {
            name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
            var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
               results = regex.exec(location.search);
            return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
    }

     var min_price_original=getParameterByName('min-price').replace('%2C','');
     var max_price_original=getParameterByName('max-price').replace('%2C','');