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

时间:2016-09-27 11:48:50

标签: javascript jquery string url

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

我想在两个变量

中获得ref=avl-error10610

对于像这样的例子

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

如何在javascript或jQuery中获取它

3 个答案:

答案 0 :(得分:1)

.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);




答案 1 :(得分:0)

这在Stack上被多次询问和回答。

看看这篇文章:

How can I get query string values in JavaScript?

Parse query string in JavaScript

基本上你必须:

  1. 读取查询字符串:全部在“?”
  2. 之后
  3. 用“&”拆分字符串char into array
  4. 使用“=”
  5. 拆分所有数组元素
  6. 使用decodeURIComponent
  7. 解码值

    请在询问前使用堆栈。并通过上述链接为人们提供一些声誉。

答案 2 :(得分:0)

尝试此函数,您将获得一个包含查询字符串键的数组,它的值和散列后的字符串

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);