如何从URL使用JavaScript获取查询和散列?
问题描述:
我有一个网址http://local.evibe-dash.in/tickets/123?ref=avl-error#10610
如何从URL使用JavaScript获取查询和散列?
我想ref=avl-error
和10610
两个变量
为例财产以后这样的
var1 = 'avl-error';
var2 = 10610;
我怎样才能得到它的JavaScript或jQuery的
答
在.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中被多次询问和回答。
看看这个帖子:
How can I get query string values in JavaScript?
Parse query string in JavaScript
Basicly你必须:
- 读取查询字符串: “?” 毕竟
- 分割字符串“&”焦炭引入阵列
- 分裂所有数组元素与“=”
- 译码值与decodeURIComponent
请询问之前使用堆栈。并在上面的链接上给人们一些声誉。
+0
这比写解决方案步骤和重复问题更容易编写解决方案代码。 – Mohammad
答
试试这个功能,你得到的查询字符串键的数组,它的价值和哈希
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);
后的字符串,你甚至尝试自己解决这个问题?告诉我们你的代码。 – mdziekon
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]); –
我不知道该如何解决,为什么我问@mdziekon。我在这里做得不是很有趣 – Vikash