javascript - 使用 JS/jQuery 从 URL 中删除哈希值

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

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

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

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

最佳答案

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

关于javascript - 使用 JS/jQuery 从 URL 中删除哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51853143/

相关文章:

javascript - 自动制作所有图像 Bootstrap 响应类

database-design - 哈希冲突 - 机会有多大?

sql - 如何对 Synapse Analytics 无服务器 SQL 池中的行进行随机采样?

jQuery 显示 DIV 并滚动到它,网址中没有主题标签

javascript - 无法使用javascript更新css中的图像位置

javascript - 检测到 Web Worker 已加载但未发送显式消息

javascript - React-Virtualized List 滚动时跳过行

javascript - PHP、jQuery、Ajax、发送带有附件字段代码的 HTML 输入字段不起作用

javascript - 将所有输入设为只读类

jquery - 如何通过jquery异步加载一些js脚本?