现有网址
http://example.com/home.php?id=1&branch_id=4&course_id=5
新网址
http://example.com/home.php?id=1&branch_id=4
从现有网址中删除course_id
如何从网址中删除一个参数值。
尝试下面的代码:
function replaceUrlParam(url, paramName, paramValue){
var pattern = new RegExp('(\\?|\\&)('+paramName+'=).*?(&|$)')
var newUrl=url
if(url.search(pattern)>=0){
newUrl = url.replace(pattern,'$1$2' + paramValue + '$3');
}
else{
newUrl = newUrl + (newUrl.indexOf('?')>0 ? '&' : '?') + paramName + '=' + paramValue
}
return newUrl
}
但它不起作用......
答案 0 :(得分:6)
正如您所说,您想要使用变量而不是直接使用.replace(/&course_id=\d+/, '')
,您可以像下面这样做: -
示例: -
var re = new RegExp("&course_id=\\d+");
var newUrl="http://example.com/home.php?id=1&branch_id=4&course_id=5";
console.log(newUrl.replace(re, ''));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 1 :(得分:2)
您只需使用此代码删除&course_id=5
:
var url = "http://example.com/home.php?id=1&branch_id=4&course_id=5";
url.replace(/([&\?]course_id=5*$|course_id=5&|[?&]course_id=5(?=#))/, '');
它会返回给你:http://example.com/home.php?id=1&branch_id=4