根据网址

时间:2016-09-27 18:58:05

标签: javascript

有没有办法在JS中编写函数,如果URL包含utm_campaign值,则发送它,否则将其留空。

例如我有这个链接。

http://example.com/home/?utm_campaign=mycampaign_2016_en&utm_medium=cpc&utm_source=google&utm_content=home

我希望我的功能返回" campaign_2016_en"在我的脚本中。当utm_campaign参数不可用时,返回空白。但请注意,URL和值总是不一样。

我不知道从哪里开始。感谢所有的帮助。

1 个答案:

答案 0 :(得分:2)

你可以试试这个:

    function getParameterByName(name, url) {
        if (!url) url = window.location.href;
        name = name.replace(/[\[\]]/g, "\\$&");
        var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
            results = regex.exec(url);
        if (!results) return null;
        if (!results[2]) return '';
        return decodeURIComponent(results[2].replace(/\+/g, " "));
    }

调用上面的函数,如果查询字符串值不可用,此函数将返回空字符串。

getParameterByName('utm_campaign', 'http://example.com/home/?utm_campaign=mycampaign_2016_en&utm_medium=cpc&utm_source=google&utm_content=home');

或者只是传递查询字符串参数名称。它将使用window对象来读取URL

getParameterByName('utm_campaign');

JS小提琴:

https://jsfiddle.net/wx38rz5L/4199/