Com*_*ode 2 javascript url parsing angularjs
我有一个var存储字符串,代表一个充满参数的URL.我正在使用AngularJS,我不确定是否有任何有用的模块(或者可能使用普通的JavaScript)来删除不需要的URL参数而不必使用正则表达式?
例如,我需要删除&month=05以及&year=2017:
var url = "at merge ?derivate=21&gear_type__in=13&engine=73&month=05&year=2017"
您可以使用此功能是需要2个参数:param您要删除和您source URL:
function removeParam(key, sourceURL) {
var rtn = sourceURL.split("?")[0],
param,
params_arr = [],
queryString = (sourceURL.indexOf("?") !== -1) ? sourceURL.split("?")[1] : "";
if (queryString !== "") {
params_arr = queryString.split("&");
for (var i = params_arr.length - 1; i >= 0; i -= 1) {
param = params_arr[i].split("=")[0];
if (param === key) {
params_arr.splice(i, 1);
}
}
rtn = rtn + "?" + params_arr.join("&");
}
return rtn;
}
var url = "at merge ?derivate=21&gear_type__in=13&engine=73&month=05&year=2017";
var url2 = removeParam("month", url);
var url3 = removeParam("year", url2);
console.log(url3);Run Code Online (Sandbox Code Playgroud)
var url = "at merge ?derivate=21&gear_type__in=13&engine=73&month=05&year=2017"
var urlParts = url.split('?');
var params = new URLSearchParams(urlParts[1]);
params.delete('month');
params.delete('year')
var newUrl = urlParts[0] + '?' + params.toString()
console.log(newUrl);Run Code Online (Sandbox Code Playgroud)
使用此API的优势在于,它可以与正确的百分比编码一起使用并创建字符串。
有关更多信息,请参见MDN开发人员参考-URLSearchParams API。
| 归档时间: |
|
| 查看次数: |
8882 次 |
| 最近记录: |