可能重复:
在 JavaScript 中获取查询字符串值
说如果,我有一个类似这个更新 测试的 URL
我想检查 URL 是否有参数 q。
我可以使用 $get() 来做到这一点。
If(urlparamerter == q)
{
do some thing
}
是否有任何 jquery 内置函数可以做到这一点?
提前致谢!
可能重复:
在 JavaScript 中获取查询字符串值
说如果,我有一个类似这个更新 测试的 URL
我想检查 URL 是否有参数 q。
我可以使用 $get() 来做到这一点。
If(urlparamerter == q)
{
do some thing
}
是否有任何 jquery 内置函数可以做到这一点?
提前致谢!
不,没有 jQuery 内置函数可以做到这一点。您可以使用从这个SO 答案中找到的以下功能
function getParameterByName(name) {
var match = RegExp('[?&]' + name + '=([^&]*)')
.exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
要获取q
参数,只需调用它
var qvalue = getParameterByName('q');
更新
如果你想通过传递url
而不是使用current page's url
修改函数来使用这个函数,比如下面
function getParameterByName(name,url) {
var match = RegExp('[?&]' + name + '=([^&]*)')
.exec(url);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
然后你可以这样称呼它
var qvalue = getParameterByName('q','www.test.com?q=1')
我鼓励您查看 jQuery URL Parser插件。这是与 url 和 queryString 数据交互的一种非常直接的方式:
var q = $.url().param("q"); // Gets the q parameter
对于 GET 参数,您可以从以下位置获取它们document.location.search
:
var $_GET = {};
document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
function decode(s) {
return decodeURIComponent(s.split("+").join(" "));
}
$_GET[decode(arguments[1])] = decode(arguments[2]);
});
document.write($_GET["test"]);
或者,这是一个更通用的版本:
function getQueryParams(qs) {
qs = qs.split("+").join(" ");
var params = {},
tokens,
re = /[?&]?([^=]+)=([^&]*)/g;
while (tokens = re.exec(qs)) {
params[decodeURIComponent(tokens[1])]
= decodeURIComponent(tokens[2]);
}
return params;
}
var $_GET = getQueryParams(document.location.search);
或者,更好的是,使用 PHP 获取它们:
var $_GET = <?php echo json_encode($_GET); ?>;
这个答案来自这个线程。