fluidmind
Star God: Fu Star God: Lu Star God: Shou

parseQueryString

This function will take data in the form of a URL query string, separate it into its constituent name=value pairs and assign them all to an object with the names being properties of the object. Aside from the obvious use of getting the data out of an actual URL querystring, you can also use this to pass a lot of information from one function to another.

Examples

queryString = "firstname=Dan&lastname=Delaney&profession=Computer%20Programmer"
var result = parseQueryString(queryString);

Object looks like:


Add a querystring to the URL of this page and see it parsed below:

result = parseQueryString(location.search);


Code

You can copy and paste any and all of these functions, or just download them all in one file.

/**
 * Parses a querystring into a object consisting of the name=value pairs
 *
 * Splits the querystring up and returns an object with properties that
 * correspond to the names of the variables in the querystring.
 *
 * @author  Dan Delaney     http://fluidmind.org/
 * @param   queryString     Obviously, the query string to parse
 */
function parseQueryString(queryString) {
    if(queryString == 'undefined' || queryString == '') {
        return false;
    } else {
        // Get rid of a leading '?' so that you can pass 'location.search' to this function
        if(queryString.substr(0, 1) == '?') { queryString = queryString.substr(1); }

        // Split up the querystring
        var components = queryString.split('&');

        // Assign each variable of the querystring to a new property of the final object
        var finalObject = new Object();
        var parts;
        for (var i = 0; i < components.length; i++) {
            parts = components[i].split('=');
            finalObject[parts[0]] = decodeURI(parts[1]);
        }

        return finalObject;
    }
}