2015-07-25 4 views
0

Допустим, у меня есть этот URL:Как получить значения нескольких переменных URL после знака диеза

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

Я хочу, чтобы получить значения после # в JS.

Какие: статьи и

Я был в состоянии получить всю строку с помощью:

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

Результат был: статьи/123456/

Есть ли способ получить каждую переменную в одиночку?

Заранее спасибо.

+0

[ 'String.prototype.split()'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/ Reference/Global_Objects/String/split) – Andreas

ответ

1

Применение String.prototype.split()

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

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

Я думаю, что это то, что вам нужно.

$('#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

Надеется, что это помогает.

Редактировать: или в простой функции js, с которой вы передаете URL.

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; 
}; 
+0

Где вы нашли указание на присутствие jQuery? – Andreas

+0

@Andreas Я отредактировал свой ответ, чтобы включить в него простое js-функцию. :) – Rendition

1
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 

 Смежные вопросы

  • Нет связанных вопросов^_^