修改href选择器以排除定位标记

时间:2018-11-21 17:29:01

标签: javascript href selector target

当前,这会向所有在URL中包含 .pdf 的href添加target="_blank",但还会排除其中包含 www.fakewebsiteurl.com 的URL。我一直在尝试对其进行修改,使其也排除锚点URL,但是我要简短一些。我在这里想念什么?

document.addEventListener('DOMContentLoaded', function() {
    var links = document.querySelectorAll('a');
    links.forEach(function(link){
        var href = link.getAttribute('href');

        if (href.match(/\.pdf$/)
            || !href.match(/^\/www.fakewebsiteurl.com/)
            || !href.match(/\#$/)) {
                link.setAttribute('target', '_blank');
        }
    });
});

2 个答案:

答案 0 :(得分:0)

“锚URL”一词可以用几种方式解释。

如果您要谈论以#开头的值,则可能需要使用/^#/的正则表达式。

如果您要谈论包含#的值,则可能需要使用/#/的正则表达式

如果您谈论的只是#的值,则可能需要使用/^#$/的正则表达式

答案 1 :(得分:0)

从正则表达式中删除$。

!href.match(/\#/)