使用JS / jQuery从URL删除哈希

时间:2018-08-15 04:52:14

标签: javascript jquery hash

我有以下代码:

if(window.location.hash){
    var hash = window.location.hash.substring(1);
}
var hash = window.location.hash.substring(1);
if(hash.length > 0 && hash.search('^y([0-9]+)g([0-9]+)$') >= 0)
{
    $('#recs').removeClass('closed');
    $('#rec_select_year').val(hash.match('y([0-9]+)')[1]);
    $('#rec_g_select').val(hash.match('g([0-9]+)')[1]);
    $('html, body').animate({
        scrollTop: $('#docs').offset().top + 200
    }, 0);
    changeDocuments();
}
else
{
    changeDocuments();
}
$('.filter').change(function() {
    updateDocumentList();
    var years = $('#rec_select_year').val();
    var groups = $('#rec_g_select').val();
    hash = 'y' + years + 'g' + groups;
});

我很难从网址中删除哈希。我需要将网址更改为此http://codify.org/group/y2018g7

由于这个原因,我使用substring()方法删除了哈希,但是它影响了URL,并更改为http://codify.org/group/,基本上删除了URL的末尾../y2018g7

如何更改哈希以显示http://codify.org/group/y2018g7的URL?

2 个答案:

答案 0 :(得分:1)

使用RegExp替换#中的url,如下所示。

var url =  "codify.org/group/#y2018g7";
var regx = "/#/g";
var newUrl= url.replace(eval(regx), '');
console.log(newUrl);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

注意:在上述RegExp中,g修饰符用于全局匹配(查找所有匹配项,而不是在第一个匹配项后停止)

答案 1 :(得分:0)

如果要用空字符串替换所有哈希,这将起作用。

window.location.href.split("#").join('')