我遇到问题,原始网址如下:
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?谢谢你的帮助。
更新 这是一个过程: 表格将发布到服务器 - >网址将包含逗号 - >我的新代码将删除逗号 - >在查询字符串值中,将使用正确的值。
干杯。
答案 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','');