javascript - 将目标 ="blank"添加到所有外部链接的正则表达式

标签 javascript jquery regex dom

是否可以添加 target="_blank"所有 <a>标签,只有一个正则表达式?我一直在尝试消极和积极的前瞻/后视,但无济于事。这应该:

  • 匹配href 的 anchor 标签以 http:// 开头
  • 如果 anchor 标签没有 target标签,添加一个 target="_blank"标签
  • 如果它确实有 target标签,它检查是否 target标记尚未设置为 "_blank" , 如果不是,则替换为 target="_blank"

这可能吗?如果不是,那么计算密集度最低的方法是什么?

最佳答案

您没有真正指定这是否是来自 DOM 的 html(以及其他内容)。假设您想修改 DOM...使用 jQuery,您可以执行如下操作:

$(document).ready( function() {
    $('a').filter( function() {
        return $(this).attr('href').substr(0, 7) == "http://";
    }).attr('target', '_blank');
});

这里是一个 jsfiddle 显示它的工作原理(您可以检查元素以查看 a 和以 http://开头的 href target="_blank") :http://jsfiddle.net/amRrj/

关于javascript - 将目标 ="blank"添加到所有外部链接的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16300380/

相关文章:

javascript - VUE 2+ 访问子方法

基于浏览器窗口大小的 Javascript 滚动条

javascript - jQuery 动画 div 向上滑动而不覆盖文本

regex - 如何在 unix bash 中使用正则表达式在文本中查找日期和 IP 地址

javascript - 在 CSV 文件中分组数据

javascript - 我想创建一个简单的输入框,然后在您键入时计算 80%,但不使用表单

jquery - 将函数内部的 CSS 类转换为 jQuery 动画

javascript - JS/JQuery : Redirect on the basis of XML response

C# RegEx.Split 分隔符后跟特定单词

java - 正则表达式与偶尔的字符串包装器分割线 - 无法理解正则表达式