Существующий URL

http://example.com/home.php?id=1&branch_id=4&course_id=5

Новый URL

http://example.com/home.php?id=1&branch_id=4

Удаление course_id из существующего URL

Как удалить одно значение параметра из URL.

Попробовал ниже код:

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
Renjithapr22 24 Апр 2017 в 13:43

2 ответа

Лучший ответ

Как вы сказали, что вы хотите использовать переменную вместо прямого использования .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>
6
Anant Singh---Alive to Die 24 Апр 2017 в 11:49

Вы можете просто сделать это, используя этот код для удаления &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

2
Ahmed Ginani 24 Апр 2017 в 10:58
43586003