Come posso gestire le query string con JavaScript?

Short link

Una query string in JavaScript viene gestita dalla proprietà search dell'oggetto BOM location. Tramite questa proprietà possiamo gestire le query string con facilità.

Possiamo definire la seguente funzione di utility:


function getQueryString() {
	var data = {};
	var query = location.search;
	
	if( query ) {
		var q = query.replace( "?", "" );
		if( query.indexOf( "&" ) == -1 ) {
			
			var parts = q.split( "=" );
			var name = parts[0];
			var value = parts[1];
			
			data[name] = value;
		} else {
			var parts = q.split( "&" );
			for( var i = 0; i < parts.length; ++i ) {
				var part = parts[i];
				var values = part.split( "=" );
				var name = values[0];
				var value = values[1];
				
				data[name] = value;
			}
		}
	}
	
	return data;
}

La funzione trasforma una query string come ?foo=1&bar=baz in { foo: 1, bar: "baz" }.