Saya memiliki URL seperti ini:
http://localhost/PMApp/temp.htm?ProjectID=462
Yang perlu saya lakukan adalah mendapatkan detail setelah ?
tanda (string kueri) - yaitu ProjectID=462
. Bagaimana saya bisa mendapatkannya menggunakan JavaScript?
Apa yang telah saya lakukan sejauh ini adalah:
var url = window.location.toString();
url.match(?);
Saya tidak tahu apa yang harus saya lakukan selanjutnya.
javascript
query-string
AbdulAziz
sumber
sumber
location.search
Jawaban:
Silakan lihat artikel MDN tentang
window.location
.QueryString tersedia di
window.location.search
.Solusi yang berfungsi di browser lama juga
MDN memberikan contoh (tidak lagi tersedia dalam artikel referensi di atas) tentang cara mendapatkan nilai kunci tunggal yang tersedia di QueryString. Sesuatu seperti ini:
Di browser modern
Di browser modern Anda memiliki
searchParams
properti antarmuka URL, yang mengembalikan objek URLSearchParams . Objek yang dikembalikan memiliki sejumlah metode yang mudah digunakan, termasuk metode get. Jadi padanan dari contoh di atas adalah:The URLSearchParams antarmuka juga dapat digunakan untuk string parse dalam format querystring, dan mengubahnya menjadi objek URLSearchParams berguna.
Perhatikan bahwa dukungan browser masih terbatas pada antarmuka ini, jadi jika Anda perlu mendukung browser lama, tetap gunakan contoh pertama atau gunakan polyfill .
sumber
encodeURIComponent/decodeURIComponent
sebagai gantiescape/unescape
getQueryStringValue
untuk browser lama, tidak berfungsi?foo=bar&foo1=bar1
jika kita mencoba untuk mengambil nilaifoo
, itu kembaliempty string
.Gunakan
window.location.search
untuk mendapatkan semuanya setelah?
termasuk?
Contoh:
sumber
let querystring = window.location.search.substring(1);
sumber
Ini akan menambahkan fungsi global untuk mengakses variabel queryString sebagai peta.
Nikmati.
sumber
Jika Anda kebetulan menggunakan Typecript dan memiliki dom di lib of
tsconfig.json
Anda, Anda dapat melakukan:sumber
Anda dapat menggunakan fungsi ini, untuk memisahkan string dari? Id =
ini biolanya
sumber
Anda dapat menggunakan ini untuk nilai pencarian langsung melalui nama params.
sumber
sumber
Anda dapat menggunakan
search
propertiwindow.location
objek untuk mendapatkan bagian kueri dari URL. Perhatikan bahwa ini menyertakan tanda tanya (?) Di awal, untuk berjaga-jaga jika hal itu memengaruhi cara Anda ingin menguraikannya.sumber
Anda harus melihat URL API yang memiliki metode pembantu untuk mencapai ini di dalamnya sebagai
URLSearchParams
: https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParamsIni saat ini tidak didukung oleh semua browser modern, jadi jangan lupa untuk melakukan polyfill (Polyfill tersedia menggunakan https://qa.polyfill.io/ ).
sumber
sekarang Anda memiliki bagian kueri di queryString
Penggantian pertama akan menghapus semua spasi, yang kedua akan mengganti semua bagian '&' dengan "," dan terakhir penggantian ketiga akan menempatkan ":" di tempat tanda '='.
Jadi katakanlah Anda memiliki kueri seperti abc = 123 & efg = 456 . Sekarang sebelum mengurai, kueri Anda akan diubah menjadi sesuatu seperti {"abc": "123", "efg": "456"}. Sekarang ketika Anda akan mengurai ini, itu akan memberi Anda kueri Anda di objek json.
sumber
Ubah itu menjadi array lalu pisahkan dengan '?'
sumber
sumber
Coba yang ini
Misalkan URL Anda adalah http: //example.com&this=chicken&that=sandwich . Anda ingin mendapatkan nilai ini, itu, dan lainnya.
Jika Anda ingin menggunakan URL selain yang ada di jendela, Anda bisa memasukkannya sebagai argumen kedua.
Referensi
sumber
Saya pikir jauh lebih aman untuk mengandalkan browser daripada regex yang cerdik:
sumber