Réponses:
Vous pouvez utiliser .indexOf()
et .substring()
, comme ceci:
var url = "www.aaa.com/task1/1.3.html#a_1";
var hash = url.substring(url.indexOf("#")+1);
Vous pouvez l'essayer ici , s'il n'y #
en a pas, faites une if(url.indexOf("#") != -1)
vérification comme celle-ci:
var url = "www.aaa.com/task1/1.3.html#a_1", idx = url.indexOf("#");
var hash = idx != -1 ? url.substring(idx+1) : "";
S'il s'agit de l' URL de la page actuelle , vous pouvez simplement l'utiliser window.location.hash
pour l'obtenir et le remplacer #
si vous le souhaitez.
url.split("#").pop()
- Plus lent mais plus facile.
Pour la fenêtre actuelle , vous pouvez utiliser ceci:
var hash = window.location.hash.substr(1);
Pour obtenir la valeur de hachage de la fenêtre principale , utilisez ceci:
var hash = window.top.location.hash.substr(1);
Si vous avez une chaîne avec une URL / hachage, la méthode la plus simple est:
var url = 'https://www.stackoverflow.com/questions/123/abc#10076097';
var hash = url.split('#').pop();
Si vous utilisez jQuery, utilisez ceci:
var hash = $(location).attr('hash');
var hash = window.location.hash.substr(1);
raison d'un JS ont les deux fonctions substr / substring, elles sont différentes, mais dans ce cas les mêmes.
Utilisation
window.location.hash
pour tout récupérer au-delà et y compris le #
location.hash.slice(1)
si vous ne voulez pas la balise de hachage dans la chaîne finale!
Style jQuery:
$(location).attr('hash');
Vous pouvez utiliser l'astuce suivante pour analyser toute URL valide. Il profite de l' élément d'ancrage propriété particulière liée à href de, 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
Si vous avez juste une chaîne d'url simple (et donc n'avez pas d'attribut de hachage), vous pouvez également utiliser une expression régulière:
var url = "www.example.com/task1/1.3.html#a_1"
var anchor = url.match(/#(.*)/)[1]
window.top.location.hash
place.