用javascript删除url params

时间:2013-11-28 08:13:48

标签: javascript regex

我有以下ajaxError

$(document).ajaxError(function (e, xhr, settings) {
   if ( settings.url == "/users/sign_in" ) {
        if (xhr.status == 401) {
           $('#notice_signin').html(xhr.responseText);
           $('#notice_signin').addClass("alert").addClass("alert-error");
        }
      }
});

问题是settings.url有不同的参数,例如语言环境,来源等。所以settings.url永远不会匹配/users/sign_in但是/users/sign_in?lang=fr&source=fb

什么是剥离params的简单方法?

4 个答案:

答案 0 :(得分:1)

如果您只需要检查网址,则可以使用indexOf方法

if ( settings.url.toLowerCase().indexOf("/users/sign_in")>-1)
....

否则,如果你想让url不带参数供以后使用,你可以使用split方法

var url = settings.url.split('?')[0];

答案 1 :(得分:1)

if (settings.url.split('?')[0] == '/users/sign_in') {
   ...
}

请注意,如果settings.url恰好是null,则不包括错误处理。

作为旁注,如果'/ users / sign_in'是当前页面的路径,您可以使用window.location.pathname而不是硬编码该值。

答案 2 :(得分:1)

您可以尝试使用split

吗?
var urlString = '/users/sign_in?lang=fr&source=fb';
var urlArray =  urlString.split('?');
alert(urlArray[0]);
var settingsurl = urlArray[0];


if ( settings.url == "/users/sign_in" ) {
       ....
}

答案 3 :(得分:0)

或其他选项可以使用substring

if ( settings.url.substr(0,settings.url.indexOf("?")) == "/users/sign_in" )