この翻訳は不完全です。英語から この記事を翻訳 してください。

URLSearchParams インターフェイスは URL のクエリー文字列の操作に役立つメソッドを定義します。

URLSearchParams を実装するオブジェクトは 直接 for...of で使うことができます。例えば次の2行は等価です。

for (var p of mySearchParams);
for (var p of mySearchParams.entries());
註: この機能は Web Workers 内で利用可能です。

コンストラクター

URLSearchParams()
URLSearchParams オブジェクトを返すコンストラクタです。

プロパティ

このインターフェイスが継承するプロパティはありません。

メソッド

このインターフェイスが継承するメソッドはありません。

URLSearchParams.append()
指定されたキーと値のペアを新しい検索パラメーターとして追加します。
URLSearchParams.delete()
指定された検索パラメーターとその値を、検索パラメーターのリストから削除します。
URLSearchParams.entries()
このオブジェクトに含まれる全てのキーと値のペアを列挙するための iterator を返します。
URLSearchParams.get()
指定された検索パラメーターに対応する最初の値を返します。
URLSearchParams.getAll()
指定された検索パラメーターに対応する全ての値を返します。
URLSearchParams.has()
指定された検索パラメーターが存在するかを表す Boolean 値を返します。
URLSearchParams.keys()
このオブジェクトに含まれる全てのキーと値のペアのキーを列挙する iterator を返します。
URLSearchParams.set()
指定された検索パラメーターに対応する値を設定します。複数の値が存在していた場合、それらは削除されます。
URLSearchParams.sort()
全てのキーと値のペアを、キーを基準にソートします。
URLSearchParams.toString()
URL で使用するのに適したクエリー文字列を返します。
URLSearchParams.values()
このオブジェクトに含まれる全てのキーと値のペアのを列挙する iterator を返します。

var paramsString = "q=URLUtils.searchParams&topic=api"
var searchParams = new URLSearchParams(paramsString);

//検索パラメーターを列挙する
for (let p of searchParams) {
  console.log(p);
}

searchParams.has("topic") === true; // true
searchParams.get("topic") === "api"; // true
searchParams.getAll("topic"); // ["api"]
searchParams.get("foo") === null; // true
searchParams.append("topic", "webdev");
searchParams.toString(); // "q=URLUtils.searchParams&topic=api&topic=webdev"
searchParams.set("topic", "More webdev");
searchParams.toString(); // "q=URLUtils.searchParams&topic=More+webdev"
searchParams.delete("topic");
searchParams.toString(); // "q=URLUtils.searchParams"

コラム

URLSearchParamsコンストラクタは完全なURLをパースしません。ただし先頭の?は読み飛ばします。

var paramsString1 = "http://example.com/search?query=%40";
var searchParams1 = new URLSearchParams(paramsString1);

searchParams1.has("query"); // false 
searchParams1.has("http://example.com/search?query"); // true

searchParams1.get("query"); // null
searchParams1.get("http://example.com/search?query"); // "@" (equivalent to decodeURIComponent('%40'))

var paramsString2 = "?query=value";
var searchParams2 = new URLSearchParams(paramsString2);
searchParams2.has("query"); // true 

var url = new URL("http://example.com/search?query=%40");
var searchParams3 = new URLSearchParams(url.search);
searchParams3.has("query") // true

仕様

仕様書 策定状況 コメント
URL
URLSearchParams の定義
現行の標準 初期定義

ブラウザ実装状況

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
URLSearchParamsChrome 完全対応 49Edge 完全対応 17Firefox 完全対応 29
補足
完全対応 29
補足
補足 Prior to version 57 single quotes in URLs were escaped (see bug 1386683).
IE 未対応 なしOpera 完全対応 36Safari 完全対応 10.1WebView Android 完全対応 49Chrome Android 完全対応 49Firefox Android 完全対応 29
補足
完全対応 29
補足
補足 Prior to version 57 single quotes in URLs were escaped (see bug 1386683).
Opera Android 完全対応 36Safari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
URLSearchParams() constructorChrome 完全対応 49Edge 完全対応 17Firefox 完全対応 29IE 未対応 なしOpera 完全対応 36Safari 完全対応 ありWebView Android 完全対応 49Chrome Android 完全対応 49Firefox Android 完全対応 29Opera Android 完全対応 36Safari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
appendChrome 完全対応 49Edge 完全対応 17Firefox 完全対応 29IE 未対応 なしOpera 完全対応 36Safari 完全対応 ありWebView Android 完全対応 49Chrome Android 完全対応 49Firefox Android 完全対応 29Opera Android 完全対応 36Safari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
deleteChrome 完全対応 49Edge 完全対応 17Firefox 完全対応 29IE 未対応 なしOpera 完全対応 36Safari 部分対応 一部
補足
部分対応 一部
補足
補足 Removing a non-existent query parameter doesn't remove ? from the URL. See bug 193022.
WebView Android 完全対応 49Chrome Android 完全対応 49Firefox Android 完全対応 29Opera Android 完全対応 36Safari iOS 部分対応 一部
補足
部分対応 一部
補足
補足 Removing a non-existent query parameter doesn't remove ? from the URL. See bug 193022.
Samsung Internet Android 完全対応 あり
entriesChrome 完全対応 49Edge 完全対応 17Firefox 完全対応 44IE 未対応 なしOpera 完全対応 36Safari 完全対応 ありWebView Android 完全対応 49Chrome Android 完全対応 49Firefox Android 完全対応 44Opera Android 完全対応 36Safari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
forEachChrome 完全対応 49Edge 完全対応 17Firefox 完全対応 44IE 未対応 なしOpera 完全対応 36Safari 完全対応 ありWebView Android 完全対応 49Chrome Android 完全対応 49Firefox Android 完全対応 44Opera Android 完全対応 36Safari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
getChrome 完全対応 49Edge 完全対応 17Firefox 完全対応 29IE 未対応 なしOpera 完全対応 36Safari 完全対応 ありWebView Android 完全対応 49Chrome Android 完全対応 49Firefox Android 完全対応 29Opera Android 完全対応 36Safari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
getAllChrome 完全対応 49Edge 完全対応 17Firefox 完全対応 29IE 未対応 なしOpera 完全対応 36Safari 完全対応 ありWebView Android 完全対応 49Chrome Android 完全対応 49Firefox Android 完全対応 29Opera Android 完全対応 36Safari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
hasChrome 完全対応 49Edge 完全対応 17Firefox 完全対応 29IE 未対応 なしOpera 完全対応 36Safari 完全対応 ありWebView Android 完全対応 49Chrome Android 完全対応 49Firefox Android 完全対応 29Opera Android 完全対応 36Safari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
keysChrome 完全対応 49Edge 完全対応 17Firefox 完全対応 44IE 未対応 なしOpera 完全対応 36Safari 完全対応 ありWebView Android 完全対応 49Chrome Android 完全対応 49Firefox Android 完全対応 44Opera Android 完全対応 36Safari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
setChrome 完全対応 49Edge 完全対応 17Firefox 完全対応 29IE 未対応 なしOpera 完全対応 36Safari 完全対応 ありWebView Android 完全対応 49Chrome Android 完全対応 49Firefox Android 完全対応 29Opera Android 完全対応 36Safari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
sortChrome 完全対応 61Edge 完全対応 17Firefox 完全対応 54IE 未対応 なしOpera 完全対応 48Safari 完全対応 ありWebView Android 完全対応 61Chrome Android 完全対応 61Firefox Android 完全対応 54Opera Android 完全対応 45Safari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
toStringChrome 完全対応 49Edge 完全対応 17Firefox 完全対応 29IE 未対応 なしOpera 完全対応 36Safari 完全対応 ありWebView Android 完全対応 49Chrome Android 完全対応 49Firefox Android 完全対応 29Opera Android 完全対応 36Safari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
valuesChrome 完全対応 49Edge 完全対応 17Firefox 完全対応 44IE 未対応 なしOpera 完全対応 36Safari 完全対応 ありWebView Android 完全対応 49Chrome Android 完全対応 49Firefox Android 完全対応 44Opera Android 完全対応 36Safari iOS 完全対応 ありSamsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応
部分対応  
部分対応
未対応  
未対応
実装ノートを参照してください。
実装ノートを参照してください。

関連情報

ドキュメントのタグと貢献者

このページの貢献者: yumetodo, mdnwebdocs-bot, unarist, ShoheiTai
最終更新者: yumetodo,