自动将文章中的链接转为超链接

最近在做一个论坛系统,使用了一下代码作为正文展示:

代码语言:javascript
复制
<div class="article-content">
    <?php echo $article['content']; ?>
</div>

这里用到的样式是“article-content”所以我直接在JS中对这个元素进行处理即可:

代码语言:javascript
复制
<script>
// 等待页面加载完成后执行
document.addEventListener("DOMContentLoaded", function() {
  // 获取文章内容元素
  var articleContent = document.querySelector(".article-content");

  // 正则表达式匹配链接的模式(排除已经是链接的内容和图片链接)
  var linkRegex = /(?<!<a\s[^>]*?)(?<!<img\s[^>]*?)(https?:\/\/\S+)/g;

  // 查找文章内容中的段落元素并替换链接
  var paragraphs = articleContent.getElementsByTagName("p");
  for (var i = 0; i < paragraphs.length; i++) {
    var paragraph = paragraphs[i];
    var paragraphHTML = paragraph.innerHTML;

    var replacedHTML = paragraphHTML.replace(linkRegex, function(match) {
      return '<a href="'%20+ match + '" target="_blank">'%20+ match + '</a>';
    });

    if (replacedHTML !== paragraphHTML) {
      paragraph.innerHTML = replacedHTML;
    }
  }
});
</script>
自动将文章中的链接转为超链接

以上代码设置后发现链接好像并不会把文章中所有链接都转成超链接,另外如果是img图片,链接也可能会显示不正常,下面是我修改后的最终代码:

代码语言:javascript
复制
<script>
// 等待页面加载完成后执行
document.addEventListener("DOMContentLoaded", function() {
  // 获取文章内容元素
  var articleContent = document.querySelector(".article-content");

  // 正则表达式匹配链接的模式(排除图片链接)
  var linkRegex = /(?<!<img\s[^>]*?)(https?:\/\/\S+)/g;

  // 查找文章内容中的段落元素并替换链接
  var paragraphs = articleContent.getElementsByTagName("p");
  for (var i = 0; i < paragraphs.length; i++) {
    var paragraph = paragraphs[i];
    var paragraphHTML = paragraph.innerHTML;

    var replacedHTML = paragraphHTML.replace(linkRegex, function(match) {
      return '<a href="'%20+ match + '" target="_blank">'%20+ match + '</a>';
    });

    if (replacedHTML !== paragraphHTML) {
      paragraph.innerHTML = replacedHTML;
    }
  }
});
</script>

效果:

自动将文章中的链接转为超链接

关于自动将文章中的链接转为超链接的相关内容;如有侵权,请联系老文删除。

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
老文的头像老文
上一篇 2024年7月31日 上午11:37
下一篇 2024年7月31日 上午11:50

相关推荐

  • wordpress网站用插件自动添加图片alt属性和title属性步骤

    我们在使用wordpress程序做网站时,如果网站图片比较多的情况下,要想让图片更符合SEO排名,就需要手动的给每一张图片添加ALT属性,图片的alt属性对于网站的收录及流量来源有多重要不用你给我说大家一定都知道。 但是每次添加图片都要手动添加会特别麻烦,尤其是图片多的时候。实现自动添加图片alt属性方法很简单,只需要安装一个wordpress插件就可以实现…

    2021年8月17日 建站知识
    639
  • 除宝塔面板各种计算题与延时等待

    现在宝塔面板真的是越来越过分了,删除文件、删除数据库、删除站点等操作都需要做计算题!我今天升级到7.7版本,发现删除数据库竟然还加了几秒的延时等待,也无法跳过!宝塔的老板该不会是小学数学老师吧,那么喜欢让我们做计算题!因此我写了个js用于去除各种计算题以及延时等待,同时还去除了软件列表页面的bt企业版广告。只需要执行以下命令即可一键完成! 复制以下命令在SS…

    2021年12月11日
    585
  • 小皮面板和宝塔哪个好?对比云服务器可视化网站面板工具

    目前,我们的Linux服务器配置网站环境都用到可视化面板。以前有用过WDCP,但是由于软件开发跟不上,逐渐被淘汰,后来我们开始用宝塔面板和原来的PhpStudy重构后的小皮面板。那这两个面板到底哪个好呢? 这不前几天有网友询问到,小皮面板和宝塔面板哪个好用一些。对于这个问题,老文笔记简单的梳理这两款面板的一些功能和选择建议。 1、小皮面板和宝塔面板的安装 小…

    2023年9月18日
    539
  • 宝塔面板快速安装fileinfo组件支持方法

    有些程序的特殊性,需要各种组件支持才可以安装。前几天一个网友提到在使用宝塔面板,问如何安装fileinfo扩展支持。在这篇文章中正好有帮助这个网友解决在宝塔面板中安装fileinfo的过程,所以记录下来,以便有需要的同学看到之后参考使用。 第一、准备安装 登入当前宝塔面板,进入当前需要安装fileinfo扩展的PHP目录管理。 第二、安装扩展 在安装扩展菜单…

    2021年8月12日
    534
  • WordPress密码忘了_管理员密码找回的三种方法

    用WordPress安装完网站后,时间久了难免会碰到密码忘记的情况。管理员账号没有办法通过忘记密码找回功能,所以只能使用另外的方式,本文就介绍三种简单找回WordPress管理员密码的办法。 FTP修改functions.php找回 如果你记得你网站的FTP信息,那么你可以使用FTP软件来修改主题文件夹里面的functions.php文件实现密码修改。 通过…

    2024年8月11日
    292