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