Nu på förmiddagen så var jag i behov av att hämta ner data från en querystring till en javascriptfunktion. Jag tror aldrig tidigare att jag faktiskt stött på det problemet. Hur som helst så började jag fundera över hur man gjorde, i brist på svar från tomtarna i mitt huvud så googlade jag. Förvånande nog så verkar det inte finnas något inbyggt i javascript för att hantera enskilda nycklar i querystrings, utan man kan tydligen bara plocka ner alltihop för att sedan själv grotta runt med stränghantering för att få ut det man vill ha.
Hittade ganska många riktigt dåliga försök att hantera det där vettigt i javascript. Det loopades genom strängar till höger och vänster, splittades och bökades runt. Precis när jag höll på att ge upp och istället själv sätta mig för att bygga en vettig funktion baserad på regular expressions så hittade jag en som är helt i min smak, så jag tänkte att jag passar på att ge den lite mer uppmärksamhet om det är fler som stöter på behovet i framtiden.
function getQuerystring(key, default_)
{
if (default_==null) default_="";
key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
var qs = regex.exec(window.location.href);
if(qs == null)
return default_;
else
return qs[1];
}
Källa: http://www.bloggingdeveloper.com/post/JavaScript-QueryString-ParseGet-QueryString-with-Client-Side-JavaScript.aspx