매개 변수 크기와 이름을 알 수없는 많은 jQuery 예제를 보았습니다.
내 URL에는 문자열이 하나만 있습니다.
http://example.com?sent=yes
나는 단지 탐지하고 싶다 :
- 않는
sent
존재 하는가? - “예”와 같습니까?
답변
여기에 최고의 솔루션 입니다.
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');
답변
2020 년 솔루션
우리는 : http://example.com?sent=yes
let searchParams = new URLSearchParams(window.location.search)
합니까는 전송 존재를 ?
searchParams.has('sent') // true
그것이 동일 “예”에?
let param = searchParams.get('sent')
그런 다음 비교하십시오.
답변
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¶m2=&id=6
$.urlParam('param1'); // name
$.urlParam('id'); // 6
$.urlParam('param2'); // null
공백이있는 예제 매개 변수
http://www.jquery4u.com?city=Gold Coast
console.log($.urlParam('city'));
//output: Gold%20Coast
console.log(decodeURIComponent($.urlParam('city')));
//output: Gold Coast
답변
나는 항상 이것을 한 줄로 붙입니다. 이제 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
답변
또 다른 대체 기능 …
function param(name) {
return (location.search.split(name + '=')[1] || '').split('&')[0];
}
답변
너무 늦을 수 있습니다. 그러나이 방법은 매우 쉽고 간단합니다.
<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
감사합니다-Ripounet
답변
또는 솔루션이 지나치게 복잡한 이유 때문에이 깔끔한 작은 기능을 사용할 수 있습니까?
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]})
결과: queryDict [ 'sent'] // 정의되지 않거나 'value'
그러나 인코딩 된 문자 나 다중 값 키 를 가지고 있다면 어떨까요?
: 당신은 더 나은이 답변을보고 어떻게 자바 스크립트에서 쿼리 문자열 값을 얻을 수 있습니까?
맛보기
"?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"