W3cubDocs

/DOM

URLSearchParams.set

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The set() method of the URLSearchParams interface sets the value associated with a given search parameter to the given value. If there were several matching values, this method deletes the others. If the search parameter doesn't exist, this method creates it.

Syntax

URLSearchParams.set(name, value)

Parameters

name
The name of the parameter to set.
value
The value of the parameter to set.

Returns

Void

Example

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

//Add a third parameter.
params.set('baz', 3);

Example2

This is a real-life example demonstrating how to create a URL and set some search parameters.

You can copy&paste the example in your [Scratchpad]

  • line#41: comment to stop dumping the search parameters to the console (debug).
  • line#43: Will dump the generated object and it's string representation to the console (info).
  • line#44: Will automatically try to open a new window/tab with the generated url (when uncommented).
  • See also Issue 242 on gskinner/regexr @github about a bug in this function...
'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 ){
		// Display the key/value pairs
		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	// single/multi-line comments
	// /(^\s*\/\/.*|\s*[^:]\/\/.*)/g								// single-line comments
	,[
		"These should work:",
		"",
		"// 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 ",
		"",
		"These shouldn\'t work:",
		"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' )

Specifications

Specification Status Comment
URL
The definition of 'set()' in that specification.
Living Standard Initial definition.

Browser compatibilityUpdate compatibility data on GitHub

Desktop
Chrome Edge Firefox Internet Explorer Opera Safari
Basic support 49 17 26 No 36 ?
Mobile
Android webview Chrome for Android Edge Mobile Firefox for Android Opera for Android iOS Safari Samsung Internet
Basic support 49 49 17 26 36 ? ?

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams/set