URLSearchParams.set()

URLSearchParams インターフェイスの set() メソッドは、指定された検索パラメーターに関連付けられた値を指定された値に設定します。 一致する値が複数ある場合、このメソッドは他の値を削除します。 検索パラメーターが存在しない場合、このメソッドはそれを作成します。

註: この機能は Web Workers 内で利用可能です。

構文

URLSearchParams.set(name, value)

パラメーター

name
設定するパラメーターの名前。
value 
設定するパラメーターの値。

戻り値

無効。

次の簡単な例から始めましょう。

let url = new URL('https://example.com?foo=1&bar=2');
let params = new URLSearchParams(url.search.slice(1));

// 3番目のパラメーターを追加します。
params.set('baz', 3);

以下は、URL を作成し、いくつかの検索パラメーターを設定する方法を示す実際の例です。

スクラッチパッドに例をコピーして貼り付けることができます。

  • 41行目:コンソールへの (debug による) 検索パラメーターのダンプを停止するにはコメントにします。
  • 43行目:生成されたオブジェクトとその文字列表現をコンソールに (info で) ダンプします。
  • 44行目:生成された URL で新しいウィンドウ/タブを自動的に開こうとします(コメントが解除されている場合)。
'use strict'

function genURL(rExp, aText, bDebug=false){
	let theURL

	theURL= new URL('https://regexr.com')
	theURL.searchParams.set( 'expression', rExp.toString() )
	theURL.searchParams.set( 'tool', 'replace' )
	theURL.searchParams.set( 'input', '\u2911\u20dc' )// ⤑⃜
	theURL.searchParams.set( 'text', aText.join('\n') )
	if( bDebug ){
		// キー/値のペアを表示
		for(var pair of theURL.searchParams.entries()) {
			console.debug(pair[0] + ' = \'' + pair[1] + '\''); 
		}
		console.debug(theURL)
	} 
	return theURL
}
var url = genURL(
	/(^\s*\/\/|\s*[^:]\/\/).*\s*$|\s*\/\*(.|\n)+?\*\/\s*$/gm	// 単一行/複数行のコメント
	// /(^\s*\/\/.*|\s*[^:]\/\/.*)/g								// 単一行のコメント
	,[
		"これらは動作します:",
		"",
		"// eslint-disable-next-line no-unused-vars",
		"lockPref(	'keyword.URL',\t\t'https://duckduckgo.com/html/?q=!+'	)\t//      test",
		"/*",
		"	* bla bla    ",
		"*/",
		"",
		"/* bla bla */",
		"",
		"// bla bla ",
		"",
		"これらは動作しません:",
		"console.log(\"http://foo.co.uk/\")",
		"var url = \"http://regexr.com/foo.html?q=bar\"",
		"alert(\"https://mediatemple.net\")",
	]
	, true
)
console.info( url, url.toString() )
// window.open( url, 'regex_site' )

仕様

仕様 状態 コメント
URL
set() の定義
現行の標準 初期定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
setChrome 完全対応 49Edge 完全対応 17Firefox 完全対応 29IE 未対応 なしOpera 完全対応 36Safari 完全対応 ありWebView Android 完全対応 49Chrome Android 完全対応 49Firefox Android 完全対応 29Opera Android 完全対応 36Safari iOS 完全対応 ありSamsung Internet Android 完全対応 5.0

凡例

完全対応  
完全対応
未対応  
未対応