Модификация селектора href для исключения тегов привязки - PullRequest
0 голосов
/ 21 ноября 2018

В настоящее время это добавляет target="_blank" ко всем ссылкам, которые включают .pdf в URL, но также исключает URL с www.fakewebsiteurl.com .Я пытался изменить его, чтобы исключить 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 голосов
/ 21 ноября 2018

Снимите $ с вашего регулярного выражения.

!href.match(/\#/)
0 голосов
/ 21 ноября 2018

Термин «URL-адреса привязки» можно интерпретировать несколькими способами.

Если вы говорите о значениях, которые начинаются с #, вы, вероятно, захотите регулярное выражение /^#/.

Если вы говорите о значениях, которые содержат #,вы, вероятно, хотите регулярное выражение /#/

Если вы говорите о значениях, которые являются только #, вы, вероятно, хотите регулярное выражение /^#$/

...