2016-09-27 30 views
-3

我有一个网址http://local.evibe-dash.in/tickets/123?ref=avl-error#10610如何从URL使用JavaScript获取查询和散列?

我想ref=avl-error10610两个变量

为例财产以后这样的

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

我怎样才能得到它的JavaScript或jQuery的

+0

后的字符串,你甚至尝试自己解决这个问题?告诉我们你的代码。 – mdziekon

+0

var t =“http://local.evibe-dash.in/tickets/123?ref=avl-error#10610”; arr = t.split(“=”); res = arr [1] .split(“#”); alert(res [0] +“”+ res [1]); –

+1

我不知道该如何解决,为什么我问@mdziekon。我在这里做得不是很有趣 – Vikash

回答

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

+0

我想要“ref = avl-error”,不仅是查询的avl错误。我怎么才能得到它。 – Vikash

+0

@Vikash改用'var query = url.match(/ ref = [^#] + /)[0]'。 – Mohammad

+0

谢谢@Mhamhammad。解决了。你可以请建议我一些很好的正则表达式教程,我的问题已经解决,但我完全不理解代码。 – Vikash

0

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

看看这个帖子:

How can I get query string values in JavaScript?

Parse query string in JavaScript

Basicly你必须:

  1. 读取查询字符串: “?” 毕竟
  2. 分割字符串“&”焦炭引入阵列
  3. 分裂所有数组元素与“=”
  4. 译码值与decodeURIComponent

请询问之前使用堆栈。并在上面的链接上给人们一些声誉。

+0

这比写解决方案步骤和重复问题更容易编写解决方案代码。 – Mohammad

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