querystring.get
Available inall subroutines.
Returns the undecoded value associated with the query parameter name from the query component of url.
This expects that url is a valid URL and is URL-encoded. name is URL-encoded before searching and its value is returned as-is.
If the query component does not contain a value associated with name, then
querystring.get returns a not set value. For example,
querystring.get("/?a=1&b=2&c=3", "d") is a not set value.
If a query parameter associated with name is found but the value is absent,
then querystring.get returns the string "". For example,
querystring.get("/?a=1&b=&c=3", "b") is "".
If multiple query parameters of the same name are present in the query
component, then querystring.get returns the first value associated with
name. For example, querystring.get("/?a=1&b=2&c=3&b=4&d=5", "b") is "2".
If the URL does not include a query component, then querystring.get returns a
not set value. For example, querystring.get("/", "a") is a not set value.
If querystring.get is called with not set or empty string arguments, then it
returns a not set value. For example, querystring.get("", "") is a not
set value.
To check if the return value is not an empty string or a not set value, use the
std.strlen function, which
returns 0 in both cases.
if (std.strlen(querystring.get(req.url, "foo")) > 0) { // Do something if the value associated with "foo" is not an empty string // or a not set value.}This function conforms to the URL Living Standard.
Examples
querystring.get("/?foo=", "foo") # returns ""querystring.get("", "") # returns a not set valuequerystring.get("/?foo=&foo=bar", "foo") # returns ""querystring.get("/?a=1&b=2&c=3&d=4", "b") # returns "2"querystring.get("/?a=1", "b") # returns a not set valuequerystring.get("/?foo", "foo") # returns a not set valuequerystring.get("/?a=1&b=2&c=3&d=4&b=5", "b") # returns "2"querystring.get(not set string, not set string) # returns a not set value