url 매개 변수 jquery 가져오기 또는 쿼리 문자열 값 가져오기 방법(js)

나는 파라미터 크기와 이름을 알 수 없는 jQuery 예시를 많이 보았다. 내 URL에는 문자열이 하나만 있습니다.

http://example.com?sent=yes

저는 단지 감지하고 싶습니다.

  1. '보낸'이 존재하는가?
  2. "yes"와 같습니까?
질문에 대한 의견 (5)
해결책

최상의 솔루션 여기.

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=jquery by example.

var tech = getUrlParameter('technology');
var blog = getUrlParameter('blog');
해설 (33)
  • 솔루션 (* 2019년 분리, &lt &quot the";! 가독성을 수 있습니다. - &gt.

우리는: http://example.com? 승인에서 = yes

let searchParams = new URLSearchParams(window.location.search)
        • 승인에서 존재하지 않습니다.
searchParams.has('sent') // true

, 를 것은 비유하 &quot yes&quot,?

let param = searchParams.get('sent')

그리고 불과 비교하십시오 거잖나.

해설 (11)

jQuery 코드 동적 변수를 매개변수로 스니핏 저장됩니까 이를 저장하는 url 을 얻기 위해 JavaScript 로 com/go/4e6b330a_kr 바로 사용할 수 있는 스크립트:

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

example.com? id = = = name&amp param1, amp; param2 &amp 6 amp;;

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

예 params 공백을

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

console.log(decodeURIComponent($.urlParam('city'))); 
//output: Gold Coast
해설 (11)

난 항상 스틱 이 한 행으로. 이제 params) 는 var.

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
해설 (8)

그 늦었음요 수 있습니다. 하지만 이 방법은 매우 쉽고 간편하게

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



<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"
});

, UPDATE*&l br/&gt. Uirl 플러그인에는 필요합니다. plugins.jquery.com/url &lt br/>; 감사합니다 - 리푸네

해설 (1)

또 다른 대안이 될 수 있다.

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

이 때문에 깔끔한 리틀이에요 기능을 사용할 수 있습니다, 또는 why 로베르콤프리카테드 솔루션인가?

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

이 때 더욱 단순화 및 오네린드 보인다.

tl; dr 온라인 솔루션이므로

var queryDict = {};
location.search.substr(1).split("&").forEach(function(item) {queryDict[item.split("=")[0]] = item.split("=")[1]})

&lt pre>; 결과:. 크리디스 [# 39, & # 39 sent&;] # 39, & # 39, value& 정의되지 않은 또는 // &lt /pre>;

하지만 와일드링이 잡을라는데 encoded 있습니다 characters 또는 multivalued keys?

이 질문에 더욱 잘 볼 수 있습니다. 쿼리 문자열 JavaScript 의 값을 어떻게 해야 할까요?

Sneak peak

"?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"
해설 (6)

'우를시치파람스 사용하여':

var params = new window.URLSearchParams(window.location.search);
console.log(params.get('name'));

조심해 호환성에 대해 (대부분 it& # 39 의 좋아요, 하지만, IE, 모서리까지 서로 다를 수 있고, 스토리, 이걸 hsbc (참조: https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams)

해설 (2)

아마도 열거하십시오 치과의사 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"

js, 기본적으로 모든 문장열 푸십시오 () 함수를 호출할 수 있는 치과의사 (예를 들어, 문서. 진실이며당신이 물러서요 이스마프 루이지 스트레이치 ()) 는 모든 매개변수입니다 찾았습니다. # 39, s 도 구분 및 커스터마이징됩니다 it& 대응하기 위해 모든.

축소 된 버전 &lt. 1kb

해설 (0)

이건 단순하고 협력했습니다 가져다줄래요

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

그래서 도시 경우 url 은 http://www.yoursite.com? = 4

이 시도하시겠습니까

console.log($.urlParam('city'));
해설 (0)

이게 도움이 됐으면 좋겠어요.

 <script type="text/javascript">
   function getParameters() {
     var searchString = window.location.search.substring(1),
       params = searchString.split("&"),
       hash = {};

     if (searchString == "") return {};
     for (var i = 0; i < params.length; i++) {
       var val = params[i].split("=");
       hash[unescape(val[0])] = unescape(val[1]);
     }

     return hash;
   }

    $(window).load(function() {
      var param = getParameters();
      if (typeof param.sent !== "undefined") {
        // Do something.
      }
    });
</script>
해설 (0)

<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. &gt 거짓값 -;

function GetRequestParam(param)
{
    var res = null;
    try{
        var qs = decodeURIComponent(window.location.search.substring(1));//get everything after then '?' in URI
        var ar = qs.split('&');
        $.each(ar, function(a, b){
            var kv = b.split('=');
            if(param === kv[0]){
                res = kv[1];
                return false;//break loop
            }
        });
    }catch(e){}
    return res;
}

끝 - &lt 스니핏 >;!

해설 (0)

작업 데모를 사용해 보십시오. http://jsfiddle.net/xy7cX/

API:

":)"에 도움이 될 것입니다.

코드

var url = "http://myurl.com?sent=yes"

var pieces = url.split("?");
alert(pieces[1] + " ===== " + $.inArray("sent=yes", pieces));
해설 (1)

그렇게 간단한 url 과 프레젠테이션이든 값을 사용할 수 있습니다

function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
    results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}
  • 사용 예 *
// query string: ?first=value1&second=&value2
var foo = getParameterByName('first'); // "value1"
var bar = getParameterByName('second'); // "value2" 

참고: 이 경우 여러 번 매개변수입니다 (= = value2 value1&amp? 첫째, 둘째) 로 첫 번째 값을 얻을 수 있습니다 (value1) 와 두 번째 값 (value2).

해설 (0)

이 싸움은 오버킬) 이 있는데, 꽤 인기 있는 라이브러리란 부각하십시오 uri 를 위한 구문 분석, 호출됨 [우리자이스] (https://github.com/medialize/URI.js).

사례

<! - begin 스니핏: js 숨기십시오: &gt 거짓값 -;

var uri = "http://example.org/foo.html?technology=jquery&technology=css&blog=stackoverflow";
var components = URI.parse(uri);
var query = URI.parseQuery(components['query']);
document.getElementById("result").innerHTML = "URI = " + uri;
document.getElementById("result").innerHTML += "<br>technology = " + query['technology'];

// If you look in your console, you will see that this library generates a JS array for multi-valued queries!
console.log(query['technology']);
console.log(query['blog']);
<script src="https://cdnjs.cloudflare.com/ajax/libs/URI.js/1.17.0/URI.min.js"></script>

<span id="result"></span>

끝 - &lt 스니핏 >;!

해설 (0)

39 의 이 거대한 there& 라이브러리란:

https://github.com/allmarkedup/purl

간단히 할 수 있는

url = 'http://example.com?sent=yes';
sent = $.url(url).param('sent');
if (typeof sent != 'undefined') { // sent exists
   if (sent == 'yes') { // sent is equal to yes
     // ...
   }
}

39 를 사용하여 비유하사 you& 가정할 때, re 포함한다. 그냥 일반 javascript 로 사용할 수도 있습니다, 그런 다음 구문은 오더할 조금 다릅니다.

해설 (1)
http://example.com?sent=yes

최선의 해결책이 here.

function getUrlParameter(name) {
    name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
    var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
    var results = regex.exec(location.href);
    return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, '    '));
};

위 함수를 통해 개별 매개 변수 값을 얻을 수 있습니다.

getUrlParameter('sent');
해설 (1)

이 좋은 객체에는 부여하느뇨 작업할 수 있습니다

    function queryParameters () {
        var result = {};

        var params = window.location.search.split(/\?|\&/);

        params.forEach( function(it) {
            if (it) {
                var param = it.split("=");
                result[param[0]] = param[1];
            }
        });

        return result;
    }

그리고.

    if (queryParameters().sent === 'yes') { .....
해설 (1)

이 기반으로 하고 있다 [가조리스] (https://stackoverflow.com/users/2601258/gazoris) & # 39 라고 하지만, s 는 데이터가 있을 때 사용할 수 있도록 매개변수입니다 uirl 이외의 숫자와:

function urlParam(name){
    var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
    // Need to decode the URL parameters, including putting in a fix for the plus sign
    // https://stackoverflow.com/a/24417399
    return results ? decodeURIComponent(results[1].replace(/\+/g, '%20')) : null;
}
해설 (0)

우리자이스 라이브러리를 사용하는 또 다른 예를 들어 있습니다.

예 정확히 질문에 대한 답변을 요구했다.

<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. &gt 거짓값 -;

var url = 'http://example.com?sent=yes';
var urlParams = new URI(url).search(true);
// 1. Does sent exist?
var sendExists = urlParams.sent !== undefined;
// 2. Is it equal to "yes"?
var sendIsEqualtToYes = urlParams.sent == 'yes';

// output results in readable form
// not required for production
if (sendExists) {
  console.log('Url has "sent" param, its value is "' + urlParams.sent + '"');
  if (urlParams.sent == 'yes') {
    console.log('"Sent" param is equal to "yes"');
  } else {
    console.log('"Sent" param is not equal to "yes"');
  }
} else {
  console.log('Url hasn\'t "sent" param');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/URI.js/1.18.2/URI.min.js"></script>

끝 - &lt 스니핏 >;!

해설 (0)