Risposte:
Puoi usare il .indexOf()
e .substring()
, in questo modo:
var url = "www.aaa.com/task1/1.3.html#a_1";
var hash = url.substring(url.indexOf("#")+1);
Puoi provarlo qui , se potrebbe non averne uno #
, fai un if(url.indexOf("#") != -1)
controllo come questo:
var url = "www.aaa.com/task1/1.3.html#a_1", idx = url.indexOf("#");
var hash = idx != -1 ? url.substring(idx+1) : "";
Se questo è l' URL della pagina corrente , puoi semplicemente usarlo window.location.hash
per ottenerlo e, #
se lo desideri , sostituiscilo .
url.split("#").pop()
- Più lento ma più facile.
Per la finestra corrente , puoi usare questo:
var hash = window.location.hash.substr(1);
Per ottenere il valore hash della finestra principale , utilizzare questo:
var hash = window.top.location.hash.substr(1);
Se hai una stringa con un URL / hash, il metodo più semplice è:
var url = 'https://www.stackoverflow.com/questions/123/abc#10076097';
var hash = url.split('#').pop();
Se stai usando jQuery, usa questo:
var hash = $(location).attr('hash');
var hash = window.location.hash.substr(1);
causa di un JS hanno entrambe le funzioni substr / substring, sono diverse, ma in questo caso uguali.
Uso
window.location.hash
per recuperare tutto oltre e incluso il #
location.hash.slice(1)
se non vuoi il tag hash nella stringa finale!
stile jQuery:
$(location).attr('hash');
È possibile utilizzare il seguente "trucco" per analizzare qualsiasi URL valido. Si avvale del elemento di ancoraggio proprietà href relative speciale 's, hash
.
function getHashFromUrl(url){
return $("<a />").attr("href", url)[0].hash.replace(/^#/, "");
}
getHashFromUrl("www.example.com/task1/1.3.html#a_1"); // a_1
function getHashFromUrl(url){
var a = document.createElement("a");
a.href = url;
return a.hash.replace(/^#/, "");
};
getHashFromUrl("www.example.com/task1/1.3.html#a_1"); // a_1
Se hai solo una semplice stringa url (e quindi non hai un attributo hash) puoi anche usare un'espressione regolare:
var url = "www.example.com/task1/1.3.html#a_1"
var anchor = url.match(/#(.*)/)[1]
window.top.location.hash
invece.