Sorry for another "simple" question, but is there an easy way to read the GET variables from a URL.  example. I have a url http://www.domain.com/page.php?var1=1  In my case I will only have 1 variable i.e. var1 or var2 (the variable can change but there will only every be one per url).  All the tuts I have seen relate to arrays rather than "singletons" OK I know an array solution may be better but this is just a simple single get variable.  Any suggestions? Thanks in advance
 
    
    - 11,790
- 9
- 61
- 73
 
    
    - 873
- 7
- 19
- 38
- 
                    3possible duplicate of [Get QueryString values with jQuery](http://stackoverflow.com/questions/901115/get-querystring-values-with-jquery) – Oded Dec 28 '10 at 11:33
4 Answers
var split = location.search.replace('?', '').split('=')
split[0] is your var name, and split[1] is your var value. You actually don't really need jQuery for that piece of code ;)
As for twiz's comment, splitting multiple variables can be done like that:
var split = location.search.replace('?', '').split('&').map(function(val){
  return val.split('=');
});
You can access variable name by split[index][0] and value by split[index][1].
Of course you can use the second snippet instead of the first one for one variable too.
 
    
    - 5,428
- 28
- 42
- 
                    3
- 
                    I just used '&' && '=' for the argument passed to the split function. Seemed to parse results nicely. – kevincoleman Jul 30 '14 at 23:28
I use this in my default javascript file.
var get = [];
location.search.replace('?', '').split('&').forEach(function (val) {
    split = val.split("=", 2);
    get[split[0]] = split[1];
});
Now you can use them by name:
get["var1"]
 
    
    - 2,070
- 2
- 28
- 39
You can use this function that returns the value of the specified var name from url if the var exists. Otherwise you will get an empty string.
function getUrlValue(varName) {
    var split = $(location).attr('href').split('?');
    var value = '';
    if (split.length == 2) {
        split = split[1].split('&');
        for (var i = 0; i < split.length; i+=1) {
            var keyValue = split[i].split('=');
            if (keyValue.length == 2 && keyValue[0] == varName) {
                value = keyValue[1];
                break;
            }
        }
    }
    return value;
}
 
    
    - 5,242
- 2
- 39
- 23
With ES2019 to create an object:
let GET = Object.fromEntries( location.search
                                      .replace( '?', '' )
                                      .split( '&' )
                                      .map( i => i.split( '=' ) ) );The Object.fromEntries method creates an object from an array.
For the URL http://www.example.com/page?var1=1&var2=2 the above code returns the object
{
  var1: '1',
  var2: '2'
}
 
    
    - 4,191
- 3
- 27
- 44