如何使用javascript从url获取查询和哈希

How to get query and hash from url using javascript?

本文关键字:查询 哈希 获取 url 何使用 javascript      更新时间:2023-09-26

我有一个url http://local.evibe-dash.in/tickets/123?ref=avl-error#10610

我想把ref=avl-error10610化成两个变量

例如

var1 = 'avl-error';
var2 = 10610;

如何在javascript或jQuery中获得

使用regex在.match()你可以找到你想要的字符串的一部分。

var url = "http://local.evibe-dash.in/tickets/123?ref=avl-error#10610";
var query = url.match(/ref=([^#]+)/)[1];
var hash = url.match(/#([^#]+)/)[1];
console.log(query, hash);

这个问题在Stack上被问过很多次了。

看看这些帖子:

如何在JavaScript中获得查询字符串值?

用JavaScript解析查询字符串

基本上你必须:

  1. 读取查询字符串:"?"
  2. 将带"&"字符的字符串拆分为数组
  3. 用"="分割所有数组元素
  4. 用decodeuriccomponent解码值

请在询问前使用stack。给上面链接的人一些声誉。

试试这个函数,你得到一个数组,查询字符串键,它的值和哈希后的字符串

var getUrlParameter = function getUrlParameter(sParam) {
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
    sURLVariables = sPageURL.split('&'),
    sParameterName,
    i; 
for (i = 0; i < sURLVariables.length; i++) {
    sParameterName = sURLVariables[i].split('=');
    if (sParameterName[0] === sParam) {
        sParameterName[1] === undefined ? true : sParameterName[1];
    }
   if(window.location.href.indexOf("#") > -1) {
    var url = window.location.href;
    sParameterName[2] = url.match(/#([^#]+)/)[1];
        }
      }
     return sParameterName;
     };
    var a = getUrlParameter('your-query-string-key');
    console.log(a);