JS批量替换内容中关键词为超链接
发布时间 - 2026-01-10 23:09:54 点击率:次懂点seo的人都知道要给内容中关键词加上链接,形成站内锚文本链接,这对seo有很大的帮助。

思路就是在数据库中录入若干个关键词和关键词对应的链接,当然链接可以根据关键词的id自动生成,或者直接用关键词作为链接参数,如?tag=1、?kw=关键词。
这个问题不是简单的一个批量replace那么简单,要考虑到已经存在的超链接,不能将里面的文字再次替换为超链接,还有就是图片的alt属性,或者其他标签的title属性,里面的文字也不该被替换。
见下面的HTML代码:
【<a href="http://www.baidu.com" rel="external nofollow" rel="external nofollow" >九寨沟概要</a>】九寨沟位于四川省阿坝州九寨沟县境内,5A景点,世界自然遗产,有"五绝"之景色,我感到最绝的是海子,此生不能不去的景区。一年四季适合游,秋天是最美的。 <img src="" alt="九寨沟图片" title="九寨沟图片" />
这种情况你不能直接将九寨沟替换为超链接啊,不然第一个链接就会被替换为链接中包含链接,然后是图片上的alt和title也替换了一个链接上去,这肯定是不符合HTML规范的。
情景一:排除属性中的关键词
匹配的正则为:关键词[^<]*>,所以排除这个关键词的正则为:关键词?!([^<]*>)。
情景二:排除链接中的关键词
匹配的正则为:关键词[^<]*<\/a>,所以排除这个关键词的正则为:关键词?!([^<]*<\/a>)。
整合两种情况的结果为:var reg=/关键词(?!([^<]*>)|([^<]*<\/a>))/ig;
废话不多说,最后给出一个完整的批量替换实例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<div id="content">
【<a href="http://www.baidu.com" rel="external nofollow" rel="external nofollow" >九寨沟概要</a>】九寨沟位于四川省阿坝州九寨沟县境内,5A景点,世界自然遗产,有"五绝"之景色,我感到最绝的是海子,此生不能不去的景区。一年四季适合游,秋天是最美的。
<img src="" alt="九寨沟图片" title="九寨沟图片" />
</div>
<hr />
<div id="new">
</div>
<script>
var c=document.getElementById("content").innerHTML;
//var reg=/九寨沟(?!([^<]*>)|([^<]*<\/a>))/ig;
var json=[
{'key':'九寨沟','url':'/九寨沟/'}
,{'key':'景点','url':'/景点/'}
,{'key':'景区','url':'/景区/'}
];
var reg;
for(var i=0;i<json.length;i++){
var j=json[i];
reg=new RegExp(j.key+"(?!([^<]*>)|([^<]*<\/a>))","ig");
c = c.replace(reg,"<a href='"+j.url+"'>"+j.key+"</a>");
}
document.getElementById("new").innerHTML=c;
</script>
</body>
</html>
替换后的效果:
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# js
# 批量替换
# 替换关键词
# Node.js读写文件之批量替换图片的实现方法
# js replace(a
# b)之替换字符串中所有指定字符的方法
# JS实现添加
# 替换
# 删除节点元素的方法
# js正则表达式replace替换变量方法
# javascript字符串替换函数如何一次性全部替换掉
# js中字符替换函数String.replace()使用技巧
# javascript中使用replaceAll()函数实现字符替换的方法
# js使用正则实现ReplaceAll全部替换的方法
# 用JS实现HTML标签替换效果
# JS替换字符串中字符即替换全部而不是第一个
# 关键词
# 九寨
# 则为
# 的是
# 不去
# 超链接
# 最美
# 境内
# 秋天
# 就会
# 阿坝州
# 第一个
# 站内
# 我感到
# 两种
# 这个问题
# 的人都
# 这对
# 考虑到
# 这种情况
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在万网自助建站平台快速创建网站?
智能起名网站制作软件有哪些,制作logo的软件?
昵图网官方站入口 昵图网素材图库官网入口
Laravel如何处理异常和错误?(Handler示例)
详解MySQL数据库的安装与密码配置
Laravel如何优化应用性能?(缓存和优化命令)
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
如何快速生成高效建站系统源代码?
Java类加载基本过程详细介绍
如何在腾讯云服务器上快速搭建个人网站?
Laravel如何实现模型的全局作用域?(Global Scope示例)
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
如何在Ubuntu系统下快速搭建WordPress个人网站?
js代码实现下拉菜单【推荐】
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
详解Huffman编码算法之Java实现
如何快速上传建站程序避免常见错误?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
JavaScript如何实现继承_有哪些常用方法
如何基于云服务器快速搭建个人网站?
利用JavaScript实现拖拽改变元素大小
移动端脚本框架Hammer.js
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
如何在云主机快速搭建网站站点?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何用美橙互联一键搭建多站合一网站?
高防服务器如何保障网站安全无虞?
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
Laravel怎么在Controller之外的地方验证数据
黑客入侵网站服务器的常见手法有哪些?
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
Laravel如何集成Inertia.js与Vue/React?(安装配置)
Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践
Laravel如何自定义分页视图?(Pagination示例)
Android实现代码画虚线边框背景效果
Android自定义控件实现温度旋转按钮效果
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
如何在IIS7中新建站点?详细步骤解析
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
java中使用zxing批量生成二维码立牌
如何用景安虚拟主机手机版绑定域名建站?

