Rumah > Soal Jawab > teks badan
P粉1634659052023-08-21 11:15:52
Pelayar moden menyediakan antara muka URLSearchParams
delete
untuk mengendalikan parameter carian. Antara muka ini mempunyai kaedah delete
, yang boleh Alih keluar parameter mengikut nama.
if (typeof URLSearchParams !== 'undefined') { const params = new URLSearchParams('param1=1¶m2=2¶m3=3') console.log(params.toString()) params.delete('param2') console.log(params.toString()) } else { console.log(`您的浏览器 ${navigator.appVersion} 不支持URLSearchParams`) }
P粉5069638422023-08-21 09:30:25
"[&;]?" + parameter + "=[^&;]+"
Nampak berbahaya kerana hujah 'bar' akan sepadan:
?a=b&foobar=c
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.
function removeURLParameter(url, parameter) { //如果你有一个location/link对象,最好使用l.search var urlparts = url.split('?'); if (urlparts.length >= 2) { var prefix = encodeURIComponent(parameter) + '='; var pars = urlparts[1].split(/[&;]/g); //反向迭代可能会破坏性 for (var i = pars.length; i-- > 0;) { //字符串.startsWith的习惯用法 if (pars[i].lastIndexOf(prefix, 0) !== -1) { pars.splice(i, 1); } } return urlparts[0] + (pars.length > 0 ? '?' + pars.join('&') : ''); } return url; }