Bagaimana cara memeriksa apakah string kueri berisi a q=
di dalamnya menggunakan JavaScript atau jQuery?
javascript
mrblah
sumber
sumber
var url = new URLSearchParams(location.search); url.has("my_great_query");
mengembalikantrue
jika string kueri itu ada di url Anda. Anda kemudian bisa mendapatkan nilainya denganurl.get("my_great_query");
.Jawaban:
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
sumber
?kodiaq=1
, maka memanggilurl.indexOf('q=')
tanpa awalan dengan&
atau?
akan membuat Anda percaya bahwaq
parameter ada.Anda juga bisa menggunakan ekspresi reguler:
sumber
if(/[?&]q=/.test(location.search)) { alert("match"); }
(saya agak bingung karena komentar @DragosDurlut. :)Menggunakan
URL
:url = new URL(window.location.href); if (url.searchParams.get('test')) { }
EDIT: jika Anda sedih tentang kompatibilitas, saya sangat menyarankan https://github.com/medialize/URI.js/ .
sumber
Contoh kode javascript biasa yang menjawab pertanyaan Anda secara harfiah:
return location.search.indexOf('q=')>=0;
Contoh kode javascript biasa yang mencoba untuk menemukan apakah ada parameter q dan jika memiliki nilai:
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;
sumber
fooq=bar
satu varian lagi, tetapi hampir sama dengan solusi Gumbos:
var isDebug = function(){ return window.location.href.search("[?&]debug=") != -1; };
sumber
fungsi ini membantu Anda mendapatkan parameter dari URL di JS
function getQuery(q) { return (window.location.search.match(new RegExp('[?&]' + q + '=([^&]+)')) || [, null])[1]; }
sumber
Coba ini
//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/
sumber
Di peramban modern, ini menjadi jauh lebih mudah, berkat
URLSearchParams
antarmukanya. Ini mendefinisikan sejumlah metode utilitas untuk bekerja dengan string kueri URL.Dengan asumsi bahwa URL kami adalah
https://example.com/?product=shirt&color=blue&newuser&size=m
, Anda dapat mengambil string kueri menggunakanwindow.location.search
:const queryString = window.location.search; console.log(queryString); // ?product=shirt&color=blue&newuser&size=m
Anda kemudian dapat mengurai parameter string kueri menggunakan
URLSearchParams
:const urlParams = new URLSearchParams(queryString);
Kemudian Anda dapat memanggil salah satu metodenya pada hasil.
Misalnya,
URLSearchParams.get()
akan mengembalikan nilai pertama yang terkait dengan parameter pencarian yang diberikan: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
Anda dapat menggunakan
URLSearchParams.has()
untuk memeriksa apakah ada parameter tertentu:console.log(urlParams.has('product')); // true console.log(urlParams.has('paymentmethod')); // false
Untuk bacaan lebih lanjut silahkan klik disini .
sumber
Saya telah menggunakan perpustakaan ini sebelumnya yang melakukan pekerjaan yang cukup baik dari apa yang Anda cari. Secara khusus:-
qs.contains(name) Returns true if the querystring has a parameter name, else false. if (qs2.contains("name1")){ alert(qs2.get("name1"));}
sumber
Ini akan membantu:
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 {}; } }
sumber