JavaScript中如何移除查詢字串參數?
P粉239164234
2023-08-20 18:46:10
<p>有沒有比使用正規表示式更好的方法來從URL字串的查詢字串中刪除參數的標準JavaScript? </p>
<p>到目前為止,這是我想到的方法,在我的測試中似乎有效,但我不喜歡重新發明查詢字串解析! </p>
<pre class="brush:php;toolbar:false;">function RemoveParameterFromUrl(url, parameter) {
if (typeof parameter == "undefined" || parameter == null || parameter == "") throw new Error("parameter is required");
url = url.replace(new RegExp("\b" parameter "=[^&;] [&;]?", "gi"), "");
// 移除任何剩餘的垃圾
url = url.replace(/[&;]$/, "");
return url;
}</pre></p>
現代瀏覽器提供了
URLSearchParams
#介面來處理搜尋參數。此介面具有delete
方法,可以根據名稱刪除參數。看起來很危險,因為參數 'bar' 會匹配:
此外,如果
parameter
中包含任何在正規表示式中有特殊意義的字符,例如 '.',這個正規表示式就會失敗。而且它不是全域正規表示式,所以只會刪除一個參數的實例。我不會使用簡單的正規表示式來做這個,我會解析參數並丟棄不需要的參數。