问题

是否有一种无插件的方法通过jQuery(或没有)检索查询字符串值?

如果是这样,怎么样?如果没有,是否有一个插件可以这样做?

  最佳答案

更新:2018年9月

您可以使用 URLSearchParams ,它很简单,具有(但不完整)浏览器支持.

 const urlParams = new URLSearchParams(window.location.search);
const myParam = urlParams.get('myParam');
 

原件

为此目的,您不需要jQuery.您可以使用一些纯JavaScript:

 function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, '\$&');
    var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, ' '));
}
 

用法:

 // query string: ?foo=lorem&bar=&baz
var foo = getParameterByName('foo'); // "lorem"
var bar = getParameterByName('bar'); // "" (present with empty value)
var baz = getParameterByName('baz'); // "" (present with no value)
var qux = getParameterByName('qux'); // null (absent)
 


2001年12月31日终了的两年期收入和支出及准备金和基金结余变动报表 注意:如果参数存在几次(?foo=lorem&foo=ipsum),您将获得第一个值(lorem).关于这个问题没有标准,并且用法各不相同,例如,参见this question:重复HTTP GET查询键的权威位置.
2001年12月31日终了的两年期收入和支出及准备金和基金结余变动报表 注意:该函数非常敏感。如果您喜欢不敏感的参数名,将“i”修饰符添加到RegExp


这是一个基于新的 URLSearchParams specs 的更新,以更简洁地实现相同的结果.请参阅下面题为“ URLSearchParams ”的答案.

  相同标签的其他问题

javascripturlpluginsquery-string