JavaScriptでクエリ文字列パラメータを削除するにはどうすればよいですか?
P粉239164234
2023-08-20 18:46:10
<p>URL 文字列のクエリ文字列からパラメータを削除するには、正規表現を使用する標準の JavaScript よりも良い方法はありますか? </p>
<p>これは私がこれまでに思いついたもので、テストでは機能するようですが、クエリ文字列の解析を再発明するのは好きではありません。 </p>
<pre class="brush:php;toolbar:false;">function RemoveParameterFromUrl(url, パラメータ) {
if (パラメータのタイプ == "未定義" || パラメータ == null || パラメータ == "") throw new Error("パラメータが必要です");
url = url.replace(new RegExp("\b" パラメータ "=[^&;] [&;]?", "gi"), "");
// 残っているゴミを取り除く
url = url.replace(/[&;]$/, "");
URLを返します;
}</pre></p>
最新のブラウザには、検索パラメータを処理するための
URLSearchParams
インターフェイスが用意されています。このインターフェイスには、名前に基づいてパラメータを削除するdelete
メソッドがあります。リーリー
パラメータ「bar」が一致するため危険に見えます:
リーリーさらに、
parameter
に「.」などの正規表現で特別な意味を持つ文字が含まれている場合、この正規表現は失敗します。また、これはグローバル正規表現ではないため、パラメータのインスタンスが 1 つだけ削除されます。これを行うには単純な正規表現は使用しません。パラメータを解析して、不要なパラメータを破棄します。
リーリー