从URL中搜索并删除带有可选字符的参数

时间:2017-06-12 21:36:28

标签: javascript jquery regex url

我希望通过点击事件从网址中删除参数。问题是参数可以在它之前有&。因此,表单可以是search=MYSEARCHTERM&search=MYSEARCHTERM

我有以下内容似乎适用于其他一个但不是两个。我以为我可以有一个if / else语句,其中一个包含这样的东西。 (请原谅这个糟糕的正则表达式,但我以前从未写过)

var searchKeywordRegx = new RegExp(/(?:&)/ + 'search=' + searchKeyword);

$('.searchKeyword').click(function() {
    $(this).remove();
    var searchKeywordRegx = new RegExp('search=' + searchKeyword);
    console.log(searchKeywordRegx);
    document.location.href = String( document.location.href ).replace(searchKeywordRegx , "" );
});

我离开基地了吗?

2 个答案:

答案 0 :(得分:2)

使用?在regexp中创建一些可选项:

var searchKeywordRegx = new RegExp('&?search=' + searchKeyword);

答案 1 :(得分:1)

似乎没有正则表达式就可以做到这一点。如果您只是删除文档位置的“搜索”部分:

document.location.search = document.location.search
    .replace('search=' + encodeURI(searchKeyword), '');