Saya mencari plugin jQuery yang bisa mendapatkan parameter URL, dan mendukung string pencarian ini tanpa menghasilkan kesalahan JavaScript: "urutan URI cacat". Jika tidak ada plugin jQuery yang mendukung ini, saya perlu tahu cara memodifikasinya untuk mendukung ini.
?search=%E6%F8%E5
Nilai parameter URL, ketika diterjemahkan, harus:
æøå
(karakternya adalah Bahasa Norwegia).
Saya tidak memiliki akses ke server, jadi saya tidak dapat mengubah apa pun di dalamnya.
javascript
url
query-string
url-parameters
Sindre Sorhus
sumber
sumber
decodeURIComponent()
. Karakter Norwegia kemungkinan besar dikodekan menggunakan sesuatu sepertiescape()
dan mengubahdecodeURIComponent()
panggilan keunescape()
harus membantu.Jawaban:
sumber
name = 'bar'
, saya pikir regexp ini akan cocok'foobar=10'
dan kembali'10'
. Mungkin Anda bisa menambahkan'[?|&]'
di awal regexp Anda. Bersulang!function getURLParameter(name) { var p = RegExp(name + '=' + '(.+?)(&|$)').exec(location.search); if(!!p) { p = decodeURI(p[1]); } return p; }
Di bawah ini adalah apa yang saya buat dari komentar di sini, serta memperbaiki bug yang tidak disebutkan (seperti benar-benar mengembalikan nol, dan bukan 'nol'):
sumber
new
di depan RegExp? Peringatan kurang serat.Yang benar-benar Anda inginkan adalah plugin Parser URL jQuery . Dengan plugin ini, mendapatkan nilai parameter URL tertentu (untuk URL saat ini) terlihat seperti ini:
Jika Anda menginginkan objek dengan nama parameter sebagai kunci dan nilai parameter sebagai nilai, Anda hanya perlu memanggil
param()
tanpa argumen, seperti ini:Perpustakaan ini juga berfungsi dengan url lain, bukan hanya yang saat ini:
Karena ini adalah seluruh parsing pustaka URL, Anda juga bisa mendapatkan informasi lain dari URL, seperti port yang ditentukan, atau path, protokol, dll:
Ini memiliki fitur lain juga, periksa beranda untuk lebih banyak dokumen dan contoh.
Alih-alih menulis parser URI Anda sendiri untuk tujuan khusus ini yang agak berfungsi dalam kebanyakan kasus, gunakan parser URI yang sebenarnya. Bergantung pada jawabannya, kode dari jawaban lain dapat kembali
'null'
sebagai gantinull
, tidak berfungsi dengan parameter kosong (?foo=&bar=x
), tidak dapat menguraikan dan mengembalikan semua parameter sekaligus, mengulangi pekerjaan jika Anda berulang kali meminta URL untuk parameter dll.Gunakan parser URI yang sebenarnya, jangan buat parser Anda sendiri.
Bagi mereka yang menolak jQuery, ada versi plugin yang murni JS .
sumber
Jika Anda tidak tahu akan seperti apa parameter URL dan ingin mendapatkan objek dengan kunci dan nilai yang ada di parameter, Anda bisa menggunakan ini:
Memanggil getParameters () dengan url like
/posts?date=9/10/11&author=nilbus
akan kembali:Saya tidak akan memasukkan kode di sini karena lebih jauh dari pertanyaan, tetapi weareon.net memposting perpustakaan yang memungkinkan manipulasi parameter dalam URL juga:
sumber
{"": undefined}
ketika URL tidak memiliki parameter. Terbaik untuk mengembalikan objek kosong dengan menggunakanif(searchString=='') return {};
langsung setelahsearchString
penugasan.Anda dapat menggunakan properti location.search asli browser :
Tetapi ada beberapa plugin jQuery yang dapat membantu Anda:
sumber
Berdasarkan jawaban 999 :
Perubahan:
decodeURI()
diganti dengandecodeURIComponent()
[?|&]
ditambahkan di awal regexpsumber
?a=&b=1
. Regexp yang lebih baik adalah:"[?&]"+name+"=([^&]*)"
Perlu menambahkan parameter i untuk membuatnya tidak sensitif huruf:
sumber
Setelah membaca semua jawaban saya berakhir dengan versi ini dengan + fungsi kedua untuk menggunakan parameter sebagai flag
sumber
sumber
Misalnya, fungsi yang mengembalikan nilai variabel parameter apa pun.
Dan ini adalah bagaimana Anda dapat menggunakan fungsi ini dengan asumsi URL-nya adalah,
"http://example.com/?technology=jquery&blog=jquerybyexample".
Jadi dalam variabel kode di atas "tech" akan memiliki "jQuery" sebagai nilai dan variabel "blog" akan menjadi "jquerybyexample".
sumber
Anda seharusnya tidak menggunakan jQuery untuk hal seperti ini!
Cara modern adalah dengan menggunakan modul kecil yang dapat digunakan kembali melalui manajer paket seperti Bower.
Saya telah membuat modul kecil yang dapat mem-parsing string kueri ke dalam objek. Gunakan seperti ini:
sumber
Ada banyak kode buggy di sini dan solusi regex sangat lambat. Saya menemukan solusi yang bekerja hingga 20x lebih cepat daripada rekan regex dan elegan sederhana:
Regex bukan solusi semua-dan-semua-akhir, untuk jenis masalah manipulasi string sederhana dapat bekerja dalam jumlah besar lebih efisien. Sumber kode .
sumber
getURLParameter(id)
ataugetURLParameter(Id)
Bekerja sama :)sumber
Cuplikan kode jQuery untuk membuat variabel dinamis disimpan di url sebagai parameter dan menyimpannya sebagai variabel JavaScript yang siap digunakan dengan skrip Anda:
sumber
sumber
Saya membuat fungsi sederhana untuk mendapatkan parameter URL dalam JavaScript dari URL seperti ini:
KELUARAN:
18
sumber
Kalau-kalau kalian punya url seperti localhost / index.xsp? A = 1 # sesuatu dan Anda perlu mendapatkan param bukan hash.
sumber
Sedikit modifikasi pada jawaban oleh @pauloppenheim, karena tidak akan menangani nama parameter dengan benar yang dapat menjadi bagian dari nama parameter lainnya.
Misalnya: Jika Anda memiliki parameter "appenv" & "env", ulang nilai untuk "env" dapat mengambil nilai "appenv".
Memperbaiki:
sumber
Ini bisa membantu.
sumber
?twothrids=text