Javascript/Jquery 使用正则表达式更改锚点 link

Javascript/Jquery change anchor link using regex

<ul id="nav">
    <li><a href="index.html#section1">Natural Beauty</a></li>
    <li><a href="index.html#section2">Beginings</a></li>
    <li><a href="index.html#section3">Earth's Purity</a></li>
    <li><a href="index.html#section4">Bottling Goodness</a></li>
    <li><a href="index.html#section5">Drink to Health</a></li>
    <li><a href="index.html#section6">Minerals</a></li>
    <li><a href="#">Contact Us</a></li>
</ul>

我寻找了可能 js/jquery 如何像在 href 中一样跳转到页面,但页眉只会打印 index.html。 我试图像这样更改 href:

$(document).ready(function(){
    $('a').each(function(){
        var value = $(this).attr('href');
        var x = 'index.html'+ (#[a-z\d-]+);
        $(this).attr('href', value.replace(x,'index.html'));
    });
});

它没有成功,因为页眉仍然打印 index.html#section。这里真的需要帮助。谢谢

连接两个正则表达式模式时需要使用正则表达式构造函数。更改以下语句,

var x = 'index.html'+ (#[a-z\d-]+);
$(this).attr('href', value.replace(x,'index.html'));

到,

$(this).attr('href', value.replace(/index\.html#[a-z\d-]+/,'index.html'));