JQuery извлечь идентификатор из URL-адреса

У меня есть этот код:

var guestid = $(this).attr('href');

Это дает мне текущий URL-адрес, в конце URL-адреса есть ?lid=8

Как я могу извлечь 8 из этого URL-адреса? Я пробовал это:

var guestid = $(this).attr('href').match(/\?lid=([0-9]+)$/);

Но он возвращает ноль.


person John    schedule 03.01.2011    source источник
comment
Аналогичная тема: stackoverflow .com/questions/872217/   -  person Heikki    schedule 03.01.2011
comment
@Хейкки Спасибо! Это дало мне то, что мне было нужно: var guestid = $(this).attr(href).match(/lid=([0-9]+)/)[1];   -  person John    schedule 03.01.2011


Ответы (3)


Вы должны использовать $(location).attr('href'); для получения URL-адреса с помощью jquery или использовать window.location.pathname;. Ваше регулярное выражение верно

ИЗМЕНИТЬ

var mRegexp = /\?lid=([0-9]+)$/; 
var match = mRegexp.exec($(this).attr('href'));
alert(match[1]);
person Teja Kantamneni    schedule 03.01.2011
comment
Код используется из действия клика. Когда я делаю предупреждение о var guestid = $(this).attr('href'); он возвращает мне URL-адрес просто отлично. Мне просто нужно знать, как извлечь идентификатор из гостевой строки URL-адреса. - person John; 03.01.2011
comment
Если я сделаю это, var guestid = $(this).attr('href').match(/\?lid=[0-9]+$/); не окружая число (), тогда это дает мне? lid = 8 в качестве значения. Итак, что я делаю неправильно, чтобы просто добавить номер? - person John; 03.01.2011
comment
используйте 1_. var mRegexp = /\?lid=([0-9]+)$/; var match = mRegexp.exec(myString);lert(match[1]); - person Teja Kantamneni; 03.01.2011

$.urlParam = function(name){
    var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
    return results[1] || 0;
}

// вызов: передаём параметр, который хотим достать из url'а
//(translation) Call: passing a parameter that we want to get out of
$.urlParam('Id');

источник

person oyaebunterkrah    schedule 14.08.2012

Если это единственная вещь в строке запроса, сделайте следующее:

var guestid = this.search.split('=')[1];

... и у вас есть это.

Пример: http://jsfiddle.net/zzhPj/

Нет необходимости в регулярном выражении.

person user113716    schedule 03.01.2011