Javascript / Jquery使用正则表达式更改锚链接

时间:2015-05-15 06:53:42

标签: javascript jquery regex anchor

<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>

我找了关于如何像在href中跳转到页面的js / jquery,但是标题只会打印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。真的需要帮助。感谢

1 个答案:

答案 0 :(得分:0)

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

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