开发者

Grab url parameter with jquery and put into input

开发者 https://www.devze.com 2023-01-27 22:34 出处:网络
I am trying to grab a specific paramater from a url such as www.internets.com?param=123456 I am trying it with something like this..

I am trying to grab a specific paramater from a url such as www.internets.com?param=123456

I am trying it with something like this..

$j.extend({
  getUrlVars: function(){
   return window.location.href.slice(window.location.href.indexOf('?')).split(/[&?]{1}[\w\d]+=/);
  }
});
var allVars = $j.getUrlVars('param');

The weird thing is the variable is returning a comma so in this e开发者_JAVA技巧xample it looks like ,123456

Where is that coming from?!


split returns an array of substrings, so the comma is coming from the serialization of the array.


Have a look here: http://jquery-howto.blogspot.com/2009/09/get-url-parameters-values-with-jquery.html

This seems to work for me.


You're asking the javascript to split the string into an array based on the rules in your regex, so the string "?param=123456" turns into an array where everything up to the = is simply a separator, so it sees two keys: an empty string and 123456.

EDIT - You can still use split, just use a different separator. The indexOf is telling it to look at the substring after the position of the '?', so if you split on '=' it would provide an array where one value is a parameter name (possibly with a '?' or '&', so just remove it) and the next value is the value sent in after the equal sign.

You can also get a little more in depth with your regex and processing like so:

var q = window.location.search; // returns everything after '?'
var regEx = /[^?& =]([\w]*)[^!?& =]/g;
var array = q.match(regEx);
var vars = new Array();
for (var i = 0; i < array.length; i++) {
    if ((i % 2) == 0) {
        vars[array[i]] = array[i + 1];
    }
}

Which will leave you with an array where the keys are the param names, and their values are the associated values from the query string.

0

精彩评论

暂无评论...
验证码 换一张
取 消