如何忽略URL中的额外参数?

How to ignore extra parameters in URL?

<菜鸟> 当我使用正确的 URL

时,下面的代码就像一个魅力

www.exemple.com/?登录

$(document).ready(function(){

function urlparam(){
    var url = window.location.href.split('?')[1];
    if (url == 'login' ) {
        document.getElementById('loginMainContainer').style.display = 'block';
        $('.login').triggerHandler('click');
    } else if (url == 'signup' ){
            document.getElementById('loginMainContainer').style.display = 'block';
            $('.signup').triggerHandler('click');
    }
}
    urlparam()   
});

但是一旦我需要将此 URL 与其他参数一起使用(w/mailchimp)

www.exemple.com/?login&utm_source=App+Accounts&utm_campaign=e94f95d4da-News_promo+email_English_2016

它确实没有执行我需要的东西。 有没有办法忽略这些额外的参数并正确执行我的功能?

感谢您的帮助!

< /菜鸟>

您只需获取所有参数并检查 login 是否存在。

var url="http://someurl.com?test=ok&machin=1234&login&azir=lol";

function parameterExist(url,paramName)
{
  var parameters = url.split('?')[1].split('&');
  for(var i=0;i<parameters.length;i++)
  {
     var paramNameUrl=parameters[i].split('=')[0];
     if(paramNameUrl==paramName)
       return true;
  }
  return false;
}

console.log(parameterExist(url,"login"));
console.log(parameterExist(url,"blabla"));

我会使用正则表达式来处理这个问题,它会测试匹配字符串是以登录开头还是以注册开头。

    var url = ('www.exemple.com/?login&utm_source=App+Accounts&utm_campaign=e94f95d4da-News_promo+email_English_2016').toString().split('?')[1];
    if (url.match(/^login/ )) {
        console.log('login');
    } else if (url.match(/^signup/ )){
        console.log('signup');
    }