q=JavaScript 또는 jQuery를 사용하여 쿼리 문자열에이 포함되어 있는지 어떻게 확인할 수 있습니까?
답변:
var field = 'q';
var url = window.location.href;
if(url.indexOf('?' + field + '=') != -1)
return true;
else if(url.indexOf('&' + field + '=') != -1)
return true;
return false
?kodiaq=1호출 하면 매개 변수가 존재 한다고 믿게 됩니다. url.indexOf('q=')&?q
정규식을 사용할 수도 있습니다.
/[?&]q=/.test(location.search)
if(/[?&]q=/.test(location.search)) { alert("match"); }(내가 조금 인해 @DragosDurlut 코멘트에 혼란스러워했다 :).
사용 URL:
url = new URL(window.location.href);
if (url.searchParams.get('test')) {
}
편집 : 호환성에 대해 슬프다면 https://github.com/medialize/URI.js/를 적극 제안 합니다.
귀하의 질문에 문자 그대로 대답하는 일반 자바 스크립트 코드 샘플 :
return location.search.indexOf('q=')>=0;
q 매개 변수가 존재하고 값이 있는지 확인하는 일반 자바 스크립트 코드 샘플 :
var queryString=location.search;
var params=queryString.substring(1).split('&');
for(var i=0; i<params.length; i++){
var pair=params[i].split('=');
if(decodeURIComponent(pair[0])=='q' && pair[1])
return true;
}
return false;
fooq=bar
변형이 하나 더 있지만 Gumbos 솔루션과 거의 동일합니다.
var isDebug = function(){
return window.location.href.search("[?&]debug=") != -1;
};
이 시도
//field "search";
var pattern = /[?&]search=/;
var URL = location.search;
if(pattern.test(URL))
{
alert("Found :)");
}else{
alert("Not found!");
}
JSFiddle : https://jsfiddle.net/codemirror/zj4qyao2/
최신 브라우저에서는 URLSearchParams인터페이스 덕분에 훨씬 쉬워졌습니다 . 이것은 URL의 쿼리 문자열과 함께 작동하는 유틸리티 메서드의 호스트를 정의합니다.
URL이라고 가정하면 다음을 https://example.com/?product=shirt&color=blue&newuser&size=m사용하여 쿼리 문자열을 가져올 수 있습니다 window.location.search.
const queryString = window.location.search;
console.log(queryString);
// ?product=shirt&color=blue&newuser&size=m
그런 다음 다음을 사용하여 쿼리 문자열의 매개 변수를 구문 분석 할 수 있습니다 URLSearchParams.
const urlParams = new URLSearchParams(queryString);
그런 다음 결과에 대해 해당 메서드를 호출 할 수 있습니다.
예를 들어 URLSearchParams.get()는 주어진 검색 매개 변수와 관련된 첫 번째 값을 반환합니다.
const product = urlParams.get('product')
console.log(product);
// shirt
const color = urlParams.get('color')
console.log(color);
// blue
const newUser = urlParams.get('newuser')
console.log(newUser);
// empty string
URLSearchParams.has()특정 매개 변수가 있는지 확인하는 데 사용할 수 있습니다 .
console.log(urlParams.has('product'));
// true
console.log(urlParams.has('paymentmethod'));
// false
이것은 도움이 될 것입니다 :
function getQueryParams(){
try{
url = window.location.href;
query_str = url.substr(url.indexOf('?')+1, url.length-1);
r_params = query_str.split('&');
params = {}
for( i in r_params){
param = r_params[i].split('=');
params[ param[0] ] = param[1];
}
return params;
}
catch(e){
return {};
}
}
var url = new URLSearchParams(location.search); url.has("my_great_query");반환true하는 쿼리 문자열이 URL에있는 경우. 그런 다음url.get("my_great_query");.