2017-01-04 3 views
0

С javascript, я хотел бы вернуть любые параметры url, которые начинаются с Loc- в виде массива. Есть ли регулярное выражение, которое вернет это, или вариант для получения всех параметров URL-адреса, а затем выполнить результаты?Javascript получить URL-параметр, который начинается с определенной строки

Пример: www.domain.com/?Loc-chicago=test

Если два присутствует в URL, мне нужно получить как, например:

www.domain.com/? Loc-chicago = test & Loc-seattle = test2

+0

Есть много вопросов, которые отвечают как получить параметры строки запроса в JavaScript. Я не могу найти какие-либо данные для получения всех параметров в виде массива, но из этого следует довольно легко получить это из кодов в этих ответах. – Barmar

ответ

1

Вы можете использовать window.location.search, чтобы получить все параметры после (и включая ?) с URL-адреса. Тогда это просто вопрос цикла каждого параметра, чтобы проверить, совпадает ли он.

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

var query = window.location.search.substring(1); 
var qsvars = query.split("&"); 
var matched = qsvars.filter(function(qsvar){return qsvar.substring(0,4) === 'Loc-'}); 
matched.map(function(match){ return match.split("=")[1]}) 
0

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

function getUrlParameters(var matchVal) { 
    var vars = []; 
    var qstring = window.location.search; 

    if (qstring) { 
     var items = qstring.slice(1).split('&'); 
     for (var i = 0; i < items.length; i++) { 
      var parmset = items[i].split('='); 
      if(parmset[0].startsWith(matchVal) 
       vars[parmset[0]] = parmset[1]; 
     } 
    } 
    return vars; 
} 
0

Использование URLSearchparams

Интерфейс URLSearchParams определяет методы утилиты для работы с строкой запроса URL-адреса.

var url = new URL("http://" + "www.domain.com/?Loc-chicago=test&NotLoc=test1&Loc-seattle=test2"); 
 
var paramsString = url.search; 
 

 
var searchParams = new URLSearchParams(paramsString); 
 

 
for (var key of searchParams.keys()) { 
 
    if (key.startsWith("Loc-")) { 
 
    console.log(key, searchParams.get(key)); 
 
    } 
 
}