Расширение Chrome: введите параметр из URL-адреса

Возможный дубликат:
Получить значения строки запроса в JavaScript

Я работаю над расширением для Chrome. Я уже понял, как получить URL-адрес из фактического Chrome-Tab.

chrome.tabs.getSelected(null, function(tab) {
  document.getElementById('currentLink').innerHTML = tab.url;
});

Но теперь мне нужно знать, как получить определенный параметр из URL. Я уже пробовал разные Javascript-функции, но когда я их реализую, мой Extension перестает работать.

Итак: Как я могу получить определенный параметр из фактического URL?

Ответ 1

Чтобы получить строку запроса в одном регулярном выражении, используйте:

var queryString = /^[^#?]*(\?[^#]+|)/.exec(tab.url)[1];
// Explanation of RegEx:
// ^[^#?]*                          (\?[^#]+   | )
// <Starts with any non-#/? string><query string OR nothing>

Затем для получения значения конкретного ключа используйте следующую функцию:

function getParameterByName(queryString, name) {
    // Escape special RegExp characters
    name = name.replace(/[[^$.|?*+(){}\\]/g, '\\$&');
    // Create Regular expression
    var regex = new RegExp("(?:[?&]|^)" + name + "=([^&#]*)");
    // Attempt to get a match
    var results = regex.exec(queryString);
    return decodeURIComponent(results[1].replace(/\+/g, " ")) || '';
}

// Usage:
// Example: tab.url = "http://example.com/path?foo=bar&key_name=qs_value#"
var queryString = /\?[^#]+(?=#|$)|$/.exec(tab.url)[0];
var value = getParameterByName(queryString, 'qs_name');
// Result : value = "value";

// Example 2: Using the function to get a parameter from the current page URL.
//  (e.g inside content script)
var value = getParameterByName(location.search, 'qs_name');
// Result : value = "value"

Ответ 2

Не совсем регулярное выражение, но это должно работать:

var queryString=url.match(/\?.+$)[0].split('#')[0]

Это должно работать в большинстве случаев. Я попытаюсь выкопать регулярное выражение, которое я написал для этого некоторое время назад.

Ответ 3

Создана простая функция, чтобы получить параметр URL в Javascript с URL-адреса, подобного этому

?

..... 58E/веб/viewer.html страница = 17 & GetInfo = 33

    function buildLinkb(param) {
        var val = document.URL;
        var url = val.substr(val.indexOf(param))  
        var n=parseInt(url.replace(param+"=",""));
        alert(n+1); 
    }
    buildLinkb("page");

ВЫХОД: 18