Bagaimana untuk mengalih keluar parameter rentetan pertanyaan dalam JavaScript?
P粉239164234
2023-08-20 18:46:10
<p>Adakah terdapat cara yang lebih baik untuk mengalih keluar parameter daripada rentetan pertanyaan rentetan URL daripada JavaScript standard menggunakan ungkapan biasa? </p>
<p>Inilah yang saya dapat setakat ini, dan ia nampaknya berkesan dalam ujian saya, tetapi saya tidak suka mencipta semula penghuraian rentetan pertanyaan! </p>
<pre class="brush:php;toolbar:false;">function RemoveParameterFromUrl(url, parameter) {
if (typeof parameter == "undefined" || parameter == null || parameter == "") buang Ralat baru("parameter diperlukan");
url = url.replace(new RegExp("b" + parameter + "=[^&;]+[&;]?", "gi"), "");
// Buang sisa sampah
url = url.replace(/[&;]$/, "");
pulangkan url;
}</pre></p>
Pelayar moden menyediakan antara mukaURLSearchParams 接口来处理搜索参数。该接口具有
URLSearchParams
delete
untuk mengendalikan parameter carian. Antara muka ini mempunyai kaedahdelete
, yang boleh Alih keluar parameter mengikut nama.Nampak berbahaya kerana hujah 'bar' akan sepadan:
Selain itu, jika
parameter
mengandungi sebarang aksara yang mempunyai makna istimewa dalam ungkapan biasa, seperti '.', ungkapan biasa ini akan gagal. Dan ia bukan regex global, jadi hanya satu contoh parameter akan dialih keluar.Saya tidak akan menggunakan regex mudah untuk melakukan ini, saya akan menghuraikan parameter dan membuang yang saya tidak perlukan.