【问题标题】:Removing hash from URL using JS/jQuery使用 JS/jQuery 从 URL 中删除哈希
【发布时间】:2019-01-22 00:03:57
【问题描述】:

我有以下代码:

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;
});

我在从 URL 中删除哈希时遇到了困难。我需要将 url 更改为此 http://codify.org/group/y2018g7

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

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

【问题讨论】:

标签: javascript jquery hash


【解决方案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 修饰符是用于全局匹配(查找所有匹配而不是在第一个匹配后停止)

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-04
      • 2011-05-29
      • 2012-04-19
      • 2013-05-15
      • 2013-03-02
      • 1970-01-01
      相关资源
      最近更新 更多