如何在井号后获取多个URL变量的值

How to get values of multiple URL variables after the hash sign

假设我有这个 URL:

http://www.example.com/#articles/123456/

我想获取 JS# 之后的值。

它们是:文章123456

我能够使用以下方法获取整个字符串:

var type = window.location.hash.substr(1);

结果是:articles/123456/

有没有办法单独获取每个变量?

提前致谢。

我认为这就是您要找的东西。

$('#btn').on('click', function(){
    var url = 'http://www.example.com/#articles/123456/';
    var bitAfterHash = url.split('#').pop();
    var parts = bitAfterHash.split('/');
    var firstPart = parts[0];
    var lastPart = parts.pop() == '' ? parts[parts.length - 1] : parts.pop();
    $('p').html(firstPart + ' : ' + lastPart);
});

DEMO

希望对您有所帮助。

编辑: 或在将 url 传递给的普通 js 函数中。

function getUrlParts(url){
    var bitAfterHash = url.split('#').pop();
    var parts = bitAfterHash.split('/');
    var firstPart = parts[0];
    var lastPart = parts.pop() == '' ? parts[parts.length - 1] : parts.pop();
    document.getElementById('text').innerHTML= firstPart + ' : ' + lastPart;
};
    var url = "http://www.example.com/#articles/123456/";
    var lastIndex = lastIndex = url.endsWith("/") ? url.length-1: url.length;
    var hashIndexPlusOne = url.lastIndexOf('#') + 1; 
    var startIndex = url[hashIndexPlusOne]==="/" ?  hashIndexPlusOne + 1 : hashIndexPlusOne;
    values = url.substring(startIndex , lastIndex).split("/");

    //Result: 
    //values[0] = articles, values[1]= 123456

使用String.prototype.split()

var type = window.location.hash.substr(1);
var parts = type.split("/");

console.log(parts[0]) // -> articles
console.log(parts[1]) // -> 123456