使用 javascript 查找页面上的所有非导航链接

Find all non-navigating links on a page using javascript

我正在处理一个项目,我必须在该项目中找到页面上的所有链接并将事件附加到它们。 问题是,我必须 排除所有非导航链接 。 例如 应排除以下情况

<a>
<a href="">
<a href="#">
<a href="#" onclick="return false;" />
<a href="javascript:void(0)">
<a href="javascript:{}">
<a href="#0">

以下代码获取所有链接并将事件附加到它。但也不排除以上几种情况。

var links = document.getElementsByTagName('a');
      for (let link of links) {
        if (link.href == base || (link.href.indexOf(base + '#') >= 0)) {
          console.log(' - link[' + link.href + '] is same');
        } else {
          console.log(' + link[' + link.href + '] is bindable');
          link.addEventListener("click", function (e) {
            fireEvent();
          });
        }
      }

根据我的研究,我似乎最接近实现这一点的方法是通过如下正则表达式:

 var expression = /[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)?/gi;
var regex = new RegExp(expression);
var t = link.getAttribute("href");

if (t.match(regex)) {
  alert("Successful match");
} else {
  alert("No match");
}

但我正在为此寻找更好的方法或最佳解决方案。请你帮帮我。

可能类似于:

$$('a[href]:not([href^="#"]):not([href^="javascript"]):not([href=""])')