除了使用正则表达式之外,是否有更好的方法从标准JavaScript中的URL字符串中的查询字符串中删除参数?
这是我到目前为止所提出的,似乎在我的测试中有效,但我不喜欢重新发明查询字符串解析!
function RemoveParameterFromUrl( url, parameter ) {
if( typeof parameter == "undefined" || parameter == null || parameter == "" ) throw new Error( "parameter is required" );
url = url.replace( new RegExp( "\\b" + parameter + "=[^&;]+[&;]?", "gi" ), "" ); "$1" );
// remove any leftover crud
url = url.replace( /[&;]$/, "" );
return url;
}
Run Code Online (Sandbox Code Playgroud) 原始网址:
http://yourewebsite.php?id=10&color_id=1
Run Code Online (Sandbox Code Playgroud)
结果URL:
http://yourewebsite.php?id=10
Run Code Online (Sandbox Code Playgroud)
我得到了添加Param的功能
function insertParam(key, value){
key = escape(key); value = escape(value);
var kvp = document.location.search.substr(1).split('&');
var i=kvp.length; var x; while(i--)
{
x = kvp[i].split('=');
if (x[0]==key)
{
x[1] = value;
kvp[i] = x.join('=');
break;
}
}
if(i<0) {kvp[kvp.length] = [key,value].join('=');}
//this will reload the page, it's likely better to store this until finished
document.location.search = kvp.join('&');
}
Run Code Online (Sandbox Code Playgroud)
但我需要运行以删除Param