【问题标题】:Update querystring with comma separator in javascript在javascript中使用逗号分隔符更新查询字符串
【发布时间】:2016-02-09 17:38:27
【问题描述】:

寻找“stackoverflow”,我发现这很有效:

function updateQueryStringParameter(uri, key, value) {
    var re = new RegExp("([?&])" + key + "=[^&#]*", "i");
    if (re.test(uri)) {
        return uri.replace(re, '$1' + key + "=" + value);
    } else {
        var matchData = uri.match(/^([^#]*)(#.*)?$/);
        var separator = /\?/.test(uri) ? "&" : "?";    
        return matchData[0] + separator + key + "=" + value;
    }
}
function removeQueryStringParameter(uri, key, value){
    var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
    var separator = uri.indexOf('?') !== -1 ? "&" : "?";
    if (uri.match(re)) {
        return uri.replace(re, '');
    }
}

它工作正常,但我需要类似的东西,唯一的区别是值是用逗号或任何分隔符连接的。例子:

www.google.com?key=1,2,3,4 而不是 key=1&key=2...

提前致谢!

【问题讨论】:

  • 那么你的输入是什么,代码应该产生什么输出?
  • 你能在你的问题中分享一个示例输入和所需的输出吗?

标签: javascript query-string


【解决方案1】:

这是我的脚本代码:

tjq('.servizio').click(function () {
        var servizio = tjq(this).data('id');
        var href = tjq(location).attr('href');
        if(tjq(this).parent().hasClass('active')){
            var url = removeQueryStringParameter(href, 'serv', encodeURIComponent(servizio));
            location.href = url;
        }else{
            var url = updateQueryStringParameter(href, 'serv', encodeURIComponent(servizio));
            location.href = href.url;
        }
    });

和html代码:

<a href="#" class="servizio" data-id="'.$filtroS['servizio'].'">'.$filtroS['servizio'].'<small>('.$filtroS['quanti'].')</small></a></li>';

我正在创建搜索过滤器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    相关资源
    最近更新 更多