使用jquery在url中删除一个参数名称和值

时间:2017-04-24 10:43:34

标签: javascript jquery

现有网址

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
}

但它不起作用......

2 个答案:

答案 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