全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JS批量替换内容中关键词为超链接

懂点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替换字符串中字符即替换全部而不是第一个  # 关键词  # 九寨  # 则为  # 的是  # 不去  # 超链接  # 最美  # 境内  # 秋天  # 就会  # 阿坝州  # 第一个  # 站内  # 我感到  # 两种  # 这个问题  # 的人都  # 这对  # 考虑到  # 这种情况 


相关文章: 如何快速生成可下载的建站源码工具?  建站之星代理费用多少?最新价格详情介绍  如何快速搭建自助建站会员专属系统?  个人网站制作流程图片大全,个人网站如何注销?  高端企业智能建站程序:SEO优化与响应式模板定制开发  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  定制建站如何定义?其核心优势是什么?  专业公司网站制作公司,用什么语言做企业网站比较好?  韩国服务器如何优化跨境访问实现高效连接?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  桂林网站制作公司有哪些,桂林马拉松怎么报名?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  如何零基础在云服务器搭建WordPress站点?  活动邀请函制作网站有哪些,活动邀请函文案?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  如何注册花生壳免费域名并搭建个人网站?  家庭服务器如何搭建个人网站?  如何通过FTP服务器快速搭建网站?  c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】  建站主机数据库如何配置才能提升网站性能?  济南网站制作的价格,历城一职专官方网站?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  如何在阿里云完成域名注册与建站?  如何通过PHP快速构建高效问答网站功能?  如何配置WinSCP新建站点的密钥验证步骤?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?  ,石家庄四十八中学官网?  金*站制作公司有哪些,金华教育集团官网?  完全自定义免费建站平台:主题模板在线生成一站式服务  济南专业网站制作公司,济南信息工程学校怎么样?  建设网站制作价格,怎样建立自己的公司网站?  建站之星各版本价格是多少?  如何配置FTP站点权限与安全设置?  怎么将XML数据可视化 D3.js加载XML  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  香港服务器部署网站为何提示未备案?  如何快速搭建高效简练网站?  独立制作一个网站多少钱,建立网站需要花多少钱?  C#怎么使用委托和事件 C# delegate与event编程方法  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  如何在企业微信快速生成手机电脑官网?  建站主机是否等同于虚拟主机?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  香港服务器选型指南:免备案配置与高效建站方案解析  香港服务器网站卡顿?如何解决网络延迟与负载问题? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。