当前位置: 首页 > 面试题库 >

如何使用JavaScript从当前URL获取查询字符串?

松兴邦
2023-03-14
问题内容

我有这样的网址:

http://localhost/PMApp/temp.htm?ProjectID=462

我需要做的是在?符号(查询字符串)后获取详细信息-即ProjectID=462。如何使用JavaScript来获得?

到目前为止,我所做的是:

var url = window.location.toString();
url.match(?);

我不知道下一步该怎么做。


问题答案:

看一看的MDN文章有关window.location

QueryString在中可用window.location.search

同样适用于旧版浏览器的解决方案

MDN提供了一个如何获取QueryString中可用的单个键的值的示例在以上引用的文章中不再提供 。像这样:

function getQueryStringValue (key) {  
  return decodeURIComponent(window.location.search.replace(new RegExp("^(?:.*[&\\?]" + encodeURIComponent(key).replace(/[\.\+\*]/g, "\\$&") + "(?:\\=([^&]*))?)?.*$", "i"), "$1"));  
}

// Would write the value of the QueryString-variable called name to the console  
console.log(getQueryStringValue("name"));

在现代浏览器中

在现代浏览器中,您具有searchParamsURL接口的属性,该属性返回URLSearchParams对象。返回的对象有许多方便的方法,包括get方法。因此,与上述示例等效:

let params = (new URL(document.location)).searchParams;
let name = params.get("name");

该URLSearchParams接口也可以用于在查询字符串格式解析字符串,并把它们变成一个方便URLSearchParams对象。

let paramsString = "name=foo&age=1337"
let searchParams = new URLSearchParams(paramsString);

searchParams.has("name") === true; // true
searchParams.get("age") === "1337"; // true

请注意,该界面上对浏览器的支持仍然受到限制,因此,如果您需要支持旧版浏览器,请坚持第一个示例或使用polyfill



 类似资料:
  • 问题内容: 我需要的是将URL 的值转换成变量,然后在jQuery代码中使用它: 有谁知道如何使用JavaScript或jQuery来获取该价值? 问题答案: 这就是你所需要的:) 以下代码将返回一个包含URL参数的JavaScript对象: 例如,如果您具有URL: 此代码将返回: 您可以执行以下操作:

  • 问题内容: 我想要的只是获取网站URL。不是从链接获取的URL。在页面加载过程中,我需要能够获取网站的完整,当前URL,并将其设置为一个变量,以便我随意使用。 问题答案: 使用: 如评论中所述,下面的行有效,但对于Firefox而言是错误的。

  • 问题内容: 关于$ location.search,文档说, 不带任何参数调用时返回当前URL的搜索部分(作为对象)。 在我的网址中,我的查询字符串包含一个不带值的参数’?test_user_bLzgB’。同样,’$ location.search()’返回一个对象。我如何获得实际的文字? 问题答案: 自从接受了接受的答案以来,不确定是否已更改,但是有可能。 将返回键值对的对象,该对象与查询字符串

  • 问题内容: 任何人都知道编写jQuery扩展来处理查询字符串参数的好方法吗?我基本上想扩展jQuery魔术功能,因此可以执行以下操作: 这将使我在以下URL中获得值“ test” :。 我已经看到了很多可以在jQuery和Javascript中执行此操作的函数,但是我实际上想扩展jQuery以使其完全如上所示工作。我不是在寻找jQuery插件,而是在寻找jQuery方法的扩展。 问题答案: 经过多

  • 问题内容: 从格式如下的URL查询字符串中获取参数的“较少代码”方法是什么? www.mysite.com/category/subcategory?myqueryhash 输出应为: 我知道这种方法: 问题答案: 包含您要查找的数据。 文件资料 **php.net:$** _SERVER-手册

  • 问题内容: 是否有通过jQuery(或不通过jQuery)检索[查询字符串]值的无插件方法? 如果是这样,怎么办?如果没有,是否有可以做到的插件? 问题答案: const urlParams = new URLSearchParams(window.location.search); const myParam = urlParams.get(‘myParam’); 原版的 为此,您不需要jQue