Получить параметр URL JQuery или Как получить значения строки запроса в JS

Я видел много примеров jQuery, где размер и имя параметра неизвестны. У моего URL будет только одна строка:

http://example.com?sent=yes

Я просто хочу обнаружить:

  1. Есть ли sent существовать?
  2. Это равно «да»?

512

Решение

Лучшее решение Вот.

var getUrlParameter = function getUrlParameter(sParam) {
var sPageURL = window.location.search.substring(1),
sURLVariables = sPageURL.split('&'),
sParameterName,
i;

for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');

if (sParameterName[0] === sParam) {
return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);
}
}
};

И вот как вы можете использовать эту функцию, предполагая, что URL,
http://dummy.com/?technology=jquery&blog=jquerybyexample,

var tech = getUrlParameter('technology');
var blog = getUrlParameter('blog');
1032

Другие решения

Фрагмент кода jQuery, чтобы получить динамические переменные, хранящиеся в URL-адресе в качестве параметров, и сохранить их в виде переменных JavaScript, готовых для использования с вашими сценариями:

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

example.com?param1=name&param2 =&ID = 6

$.urlParam('param1'); // name
$.urlParam('id');        // 6
$.urlParam('param2');   // null

пример params с пробелами

http://www.jquery4u.com?city=Gold Coast
console.log($.urlParam('city'));
//output: Gold%20Coastconsole.log(decodeURIComponent($.urlParam('city')));
//output: Gold Coast
173

Решение от 2019

У нас есть: http://example.com?sent=yes

let searchParams = new URLSearchParams(window.location.search)

Есть ли послал существовать?

searchParams.has('sent') // true

Это равный на «да»?

let param = searchParams.get('sent')

а затем просто сравните это.

157

Я всегда придерживаюсь одной строки. Теперь у params есть переменные:

params={};location.search.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(s,k,v){params[k]=v})

многострочный:

var params={};
window.location.search
.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(str,key,value) {
params[key] = value;
}
);

как функция

function getSearchParams(k){
var p={};
location.search.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(s,k,v){p[k]=v})
return k?p[k]:p;
}

который вы могли бы использовать как:

getSearchParams()  //returns {key1:val1, key2:val2}

или же

getSearchParams("key1")  //returns val1
75

Может быть, уже слишком поздно. Но этот метод очень прост и прост

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.url.js"></script>

<!-- URL:  www.example.com/correct/?message=done&year=1990 -->

<script type="text/javascript">
$(function(){
$.url.attr('protocol')  // --> Protocol: "http"$.url.attr('path')      // --> host: "www.example.com"$.url.attr('query')         // --> path: "/correct/"$.url.attr('message')       // --> query: "done"$.url.attr('year')      // --> query: "1990"});

ОБНОВИТЬ
Требуется плагин url: plugins.jquery.com/url
Спасибо -Рипоунет

41

Еще одна альтернативная функция …

function param(name) {
return (location.search.split(name + '=')[1] || '').split('&')[0];
}
33

Или вы можете использовать эту аккуратную маленькую функцию, потому что почему слишком сложные решения?

function getQueryParam(param) {
location.search.substr(1)
.split("&")
.some(function(item) { // returns first occurence and stops
return item.split("=")[0] == param && (param = item.split("=")[1])
})
return param
}

что выглядит еще лучше, когда упрощено и подчеркнуто:

var queryDict = {};
location.search.substr(1).split("&").forEach(function(item) {queryDict[item.split("=")[0]] = item.split("=")[1]})
результат:
queryDict ['sent'] // undefined или 'value'

Но что, если у вас есть закодированные символы или же многозначные ключи?

Вам лучше увидеть этот ответ: Как я могу получить значения строки запроса в JavaScript?

Красться пик

"?a=1&b=2&c=3&d&e&a=5&a=t%20e%20x%20t&e=http%3A%2F%2Fw3schools.com%2Fmy%20test.asp%3Fname%3Dståle%26car%3Dsaab"> queryDict
a: ["1", "5", "t e x t"]
b: ["2"]
c: ["3"]
d: [undefined]
e: [undefined, "http://w3schools.com/my test.asp?name=ståle&car=saab"]

> queryDict["a"][1] // "5"> queryDict.a[1] // "5"
29

Возможно, вы захотите дать Дантист JS взгляд? (отказ от ответственности: я написал код)

код:

document.URL == "http://helloworld.com/quotes?id=1337&author=kelvin&message=hello"var currentURL = document.URL;
var params = currentURL.extract();
console.log(params.id); // 1337
console.log(params.author) // "kelvin"console.log(params.message) // "hello"

с помощью Dentist JS вы можете в основном вызывать функцию extract () для всех строк (например, document.URL.extract ()), и вы получаете HashMap всех найденных параметров. Это также настраивается для работы с разделителями и все.

Минимизированная версия < 1kb

10
По вопросам рекламы [email protected]